diff --git a/code/__defines/atc.dm b/code/__defines/atc.dm
new file mode 100644
index 0000000000..55357df403
--- /dev/null
+++ b/code/__defines/atc.dm
@@ -0,0 +1,15 @@
+#define ATC_MED "Medical"
+#define ATC_TRANS "Transport"
+#define ATC_FREIGHT "Freight"
+#define ATC_DEF "Defense"
+#define ATC_INDU "Industrial"
+
+#define ATC_TYPICAL ATC_MED, ATC_TRANS, ATC_FREIGHT, ATC_DEF, ATC_INDU
+
+#define ATC_SCI "Scientific"
+#define ATC_LUX "Luxury"
+#define ATC_ALL_CIV ATC_MED, ATC_TRANS, ATC_FREIGHT, ATC_DEF, ATC_INDU, ATC_SCI, ATC_LUX
+
+#define ATC_DIPLO "Diplomacy"
+#define ATC_SALVAGE "Salvage"
+#define ATC_ALL ATC_MED, ATC_TRANS, ATC_FREIGHT, ATC_DEF, ATC_INDU, ATC_SCI, ATC_LUX, ATC_DIPLO, ATC_SALVAGE
\ No newline at end of file
diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm
index ef737142a5..3a44a0f3d2 100644
--- a/code/modules/busy_space/air_traffic.dm
+++ b/code/modules/busy_space/air_traffic.dm
@@ -3,8 +3,8 @@
var/global/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
/datum/lore/atc_controller
- var/delay_max = 25 MINUTES //How long between ATC traffic, max. Default is 25 mins.
- var/delay_min = 40 MINUTES //How long between ATC traffic, min. Default is 40 mins.
+ var/delay_min = 25 MINUTES //How long between ATC traffic, min. Default is 25 mins.
+ var/delay_max = 40 MINUTES //How long between ATC traffic, max. Default is 40 mins.
var/backoff_delay = 5 MINUTES //How long to back off if we can't talk and want to. Default is 5 mins.
var/next_message //When the next message should happen in world.time
var/force_chatter_type //Force a specific type of messages
@@ -48,23 +48,17 @@ var/global/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
msg("Automated Shuttle, cleared to complete routine transfer from [using_map.station_name] to [using_map.dock_name].")
/datum/lore/atc_controller/proc/random_convo()
- var/one = pick(loremaster.organizations) //These will pick an index, not an instance
- var/two = pick(loremaster.organizations)
+ var/datum/lore/organization/source = loremaster.organizations[pick(loremaster.organizations)]
- var/datum/lore/organization/source = loremaster.organizations[one] //Resolve to the instances
- var/datum/lore/organization/dest = loremaster.organizations[two]
+ //get the relevant mission string from our org.
+ //will also give us a new ship name
+ var/mission_text = source.generate_mission()
//Let's get some mission parameters
- var/owner = source.short_name //Use the short name
- var/prefix = pick(source.ship_prefixes) //Pick a random prefix
- var/mission = source.ship_prefixes[prefix] //The value of the prefix is the mission type that prefix does
- var/shipname = pick(source.ship_names) //Pick a random ship name to go with it
- var/destname = pick(dest.destination_names) //Pick a random holding from the destination
- var/combined_name = "[owner] [prefix] [shipname]"
+ var/combined_name = "[source.short_name] [source.current_ship]"
var/alt_atc_names = list("[using_map.station_short] TraCon","[using_map.station_short] Control","[using_map.station_short] ATC","[using_map.station_short] Airspace")
var/wrong_atc_names = list("Sol Command","New Reykjavik StarCon", "NLS Southern Cross TraCon", "[using_map.dock_name]")
- var/mission_noun = list("flight","mission","route")
var/request_verb = list("requesting","calling for","asking for")
//First response is 'yes', second is 'no'
@@ -90,7 +84,7 @@ var/global/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
else
chatter_type = pick(2;"emerg",5;"wrong_freq","normal") //Be nice to have wrong_lang...
- var/yes = prob(90) //Chance for them to say yes vs no
+ var/yes = prob(source.legit) //Chance for them to say yes vs no
var/request = pick(requests)
var/callname = pick(alt_atc_names)
@@ -103,27 +97,29 @@ var/global/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
switch(chatter_type)
if("wrong_freq")
callname = pick(wrong_atc_names)
- full_request = "[callname], this is [combined_name] on a [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request]."
+ full_request = "[callname], this is [source.short_name] [mission_text], [pick(request_verb)] [request]."
full_response = "[combined_name], this is [using_map.station_short] TraCon, wrong frequency. Switch to [rand(700,999)].[rand(1,9)]."
full_closure = "[using_map.station_short] TraCon, understood, apologies."
if("wrong_lang")
//Can't implement this until autosay has language support
if("emerg")
- var/problem = pick("hull breaches on multiple decks","unknown life forms on board","a drive about to go critical","lost attitude control","asteroids impacting the hull","an engine on fire","a total loss of engine power","a malfunctioning bluespace drive","people trying to board the ship","instrument failure and zero visibility")
+ var/problem = pick("hull breaches on multiple decks","unknown life forms on board","a drive about to go critical","lost attitude control","asteroids impacting the hull","an engine on fire","a total loss of engine power","a malfunctioning bluespace drive","people trying to board the ship","instrument failure and zero visibility", "Skathari on board", "a malfunctioning core intelligence")
full_request = "This is [combined_name] declaring an emergency! We have [problem]!"
full_response = "[combined_name], this is [using_map.station_short] TraCon, copy. Switch to emergency responder channel [rand(700,999)].[rand(1,9)]."
- full_closure = "[using_map.station_short] TraCon, okay, switching now."
+ full_closure = pick("[using_map.station_short] TraCon, okay, switching now!", "Roger, [using_map.station_short] TraCon!", "Switching!", "...")
else
- full_request = "[callname], this is [combined_name] on a [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request]."
+ full_request = "[callname], this is [source.short_name] [mission_text], [pick(request_verb)] [request]."
full_response = "[combined_name], this is [using_map.station_short] TraCon, [response]." //Station TraCon always calls themselves TraCon
full_closure = "[using_map.station_short] TraCon, [yes ? "thank you" : "understood"], good day." //They always copy what TraCon called themselves in the end when they realize they said it wrong
+ if(source.motto && prob(source.annoying) && yes)
+ full_closure += " " + source.motto
//Ship sends request to ATC
- msg(full_request,"[prefix] [shipname]")
+ msg(full_request,"[source.current_ship]")
sleep(5 SECONDS)
//ATC sends response to ship
msg(full_response)
sleep(5 SECONDS)
//Ship sends response to ATC
- msg(full_closure,"[prefix] [shipname]")
+ msg(full_closure,"[source.current_ship]")
return
\ No newline at end of file
diff --git a/code/modules/busy_space/locations.dm b/code/modules/busy_space/locations.dm
new file mode 100644
index 0000000000..39ac09b890
--- /dev/null
+++ b/code/modules/busy_space/locations.dm
@@ -0,0 +1,7 @@
+/datum/lore/location
+ var/desc = ""
+ var/mission_types = list()
+
+/datum/lore/location/New(_desc,_mission_types)
+ desc = _desc
+ mission_types = _mission_types
\ No newline at end of file
diff --git a/code/modules/busy_space/missions.dm b/code/modules/busy_space/missions.dm
new file mode 100644
index 0000000000..2cd0123538
--- /dev/null
+++ b/code/modules/busy_space/missions.dm
@@ -0,0 +1,62 @@
+/datum/lore/mission
+ var/prefix = ""
+ var/mission_strings = list()
+ var/mission_type = ""
+
+/datum/lore/mission/New(_prefix,_mission_strings,_mission_type)
+ prefix = _prefix
+ mission_strings = _mission_strings
+ mission_type = _mission_type
+
+/datum/lore/mission/prebuilt
+/datum/lore/mission/prebuilt/New(a)
+ prefix = a
+
+//Default mission types for ease of populating organizations
+//Most orgs that do medical missions are going to run comperable kinds of medical mission
+/datum/lore/mission/prebuilt/medical
+ mission_strings = list("medical", "medical resupply", "hospital", "vaccine distribution")
+ mission_type = ATC_MED
+
+/datum/lore/mission/prebuilt/transport
+ mission_strings = list("transport", "passenger transport", "general transport", "courier")
+ mission_type = ATC_TRANS
+
+/datum/lore/mission/prebuilt/freight
+ mission_strings = list("freight", "hauling", "bulk transport", "materials delivery")
+ mission_type = ATC_FREIGHT
+
+/datum/lore/mission/prebuilt/defense
+ mission_strings = list("defense", "asset protection", "patrol")
+ mission_type = ATC_DEF
+
+/datum/lore/mission/prebuilt/industrial
+ mission_strings = list("industrial", "construction", "repair", "maintence", "factory resupply")
+ mission_type = ATC_INDU
+
+/datum/lore/mission/prebuilt/scientific
+ mission_strings = list("scientific", "research", "data collection", "survey")
+ mission_type = ATC_SCI
+
+/datum/lore/mission/prebuilt/diplomatic
+ mission_strings = list("diplomatic", "dignitary transport", "cultural exchange")
+ mission_type = ATC_DIPLO
+
+/datum/lore/mission/prebuilt/luxury
+ mission_strings = list("luxury cruise", "pleasure cruise", "VIP transport", "sight-seeing", "vacation")
+ mission_type = ATC_LUX
+
+/datum/lore/mission/prebuilt/salvage
+ mission_strings = list("salvage", "scrap gathering", "damage assessment", "material recovery", "data recovery", "effects recovery", "in-situ repair")
+ mission_type = ATC_SALVAGE
+
+/datum/lore/mission/prebuilt/medical_response
+ mission_strings = list("medical response", "emergency triage", "first response", "pathogen containment")
+ mission_type = ATC_MED
+
+/datum/lore/mission/prebuilt/defense_response
+ mission_strings = list("crisis response", "SOS investigation", "high-priority escort", "rescue")
+ mission_type = ATC_DEF
+
+/datum/lore/mission/prebuilt/transport/default
+ prefix = "ITV"
\ No newline at end of file
diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm
index 8299b98000..de5e927d92 100644
--- a/code/modules/busy_space/organizations.dm
+++ b/code/modules/busy_space/organizations.dm
@@ -1,15 +1,22 @@
//Datums for different companies that can be used by busy_space
/datum/lore/organization
- var/name = "" // Organization's name
- var/short_name = "" // Organization's shortname (NanoTrasen for "NanoTrasen Incorporated")
- var/acronym = "" // Organization's acronym, e.g. 'NT' for NanoTrasen'.
- var/desc = "" // One or two paragraph description of the organization, but only current stuff. Currently unused.
- var/history = "" // Historical discription of the organization's origins Currently unused.
- var/work = "" // Short description of their work, eg "an arms manufacturer"
- var/headquarters = "" // Location of the organization's HQ. Currently unused.
- var/motto = "" // A motto/jingle/whatever, if they have one. Currently unused.
+ var/name = "" // Organization's name
+ var/short_name = "" // Organization's shortname (NanoTrasen for "NanoTrasen Incorporated")
+ var/acronym = "" // Organization's acronym, e.g. 'NT' for NanoTrasen'.
+ var/desc = "" // One or two paragraph description of the organization, but only current stuff. Currently unused.
+ var/history = "" // Historical discription of the organization's origins Currently unused.
+ var/work = "" // Short description of their work, eg "an arms manufacturer"
+ var/headquarters = "" // Location of the organization's HQ. Currently unused.
+ var/motto = "" // A motto/jingle/whatever, if they have one.
+ var/legit = 90 // The odds of them being approved a flight route. mostly a function of their reputation though unfamiliarity with local traffic rules is also a factor
+ var/annoying = 10 // The odds they'll say their motto at the end of a successfully negotiatiated route.
+ var/serviced = list(/datum/lore/system/sol = 1) // systems they work in, weighted
+ var/missions = list() // mission types they run
+ var/special_locations = list() // individual locations they might run missions to outside of their serviced systems
+ var/mission_noun = list("mission","flight", "trip") //
+ var/current_ship = "" // the most recent ship from this org to have talked on the tracon
+//todo, implement per-org special locations
- var/list/ship_prefixes = list() //Some might have more than one! Like NanoTrasen. Value is the mission they perform, e.g. ("ABC" = "mission desc")
var/list/ship_names = list( //Names of spaceships. This is a mostly generic list that all the other organizations inherit from if they don't have anything better.
"Kestrel",
"Beacon",
@@ -31,6 +38,7 @@
"Explorer",
"Swift",
"Dragonfly",
+ "Hollyhock",
"Ascendant",
"Tenacious",
"Pioneer",
@@ -159,21 +167,57 @@
"King of the Unathi",
"Ishtar's Grace"
)
- var/list/destination_names = list() //Names of static holdings that the organization's ships visit regularly.
- var/autogenerate_destination_names = TRUE
-/datum/lore/organization/New()
- ..()
- if(autogenerate_destination_names) // Lets pad out the destination names.
- var/i = rand(6, 10)
- var/list/star_names = list(
- "Sol", "Alpha Centauri", "Tau Ceti", "Zhu Que", "Oasis", "Vir", "Gavel", "Ganesha",
- "Saint Columbia", "Altair", "Sidhe", "New Ohio", "Parvati", "Mahi-Mahi", "Nyx", "New Seoul", "Abel's Rest", "Relan", "Natuna", "Terminus",
- "Kess-Gendar", "Raphael", "Phact", "Altair", "El", "Eutopia", "Qerr'valis", "Qerrna-Lakirr", "Rarkajar", "Thoth", "Jahan's Post", "Kauq'xum", "Silk", "New Singapore", "Stove", "Viola", "Love")
- var/list/destination_types = list("dockyard", "station", "vessel", "waystation", "telecommunications satellite", "spaceport", "anomaly", "colony", "outpost")
- while(i)
- destination_names.Add("a [pick(destination_types)] in [pick(star_names)]")
- i--
+/datum/lore/organization/proc/generate_mission()
+ // pick what system we're going to run in
+ var/datum/lore/system/destination_system = pickweight(serviced)
+ if(destination_system)
+ destination_system = new destination_system
+
+ //shuffle
+ missions = shuffle(missions)
+ destination_system.locations = shuffle(destination_system.locations)
+
+ //init other variables
+ var/destination_mission_types = list()
+ var/possible_mission_types = list()
+
+ //find what missions we can run
+ for(var/datum/lore/mission/x in missions)
+ possible_mission_types |= x.mission_type
+
+ //populate destination_missions with all the mission types in that system
+ for(var/datum/lore/location/x in destination_system.locations)
+ destination_mission_types |= x.mission_types
+
+ // only find missions in the system we can run
+ possible_mission_types &= destination_mission_types
+
+ //sanity checking
+ if(!possible_mission_types) //an org was given a system that contains no missions they run. let's fail gracefully about it
+ current_ship = "vessel [pick("SOL", "VIR", "STC", "ACE")]-575-[rand(0,999999)]" //unnamed ship
+ return "[current_ship], traveling to local registrar" //instantly identifiable as an error but still immersive
+
+ //select a mission we can run
+ var/datum/lore/mission/selected_mission
+ for(var/datum/lore/mission/x in missions)
+ if(x.mission_type in possible_mission_types)
+ selected_mission = x
+ break
+
+ //select a place to do it at
+ var/datum/lore/location/selected_location
+ for(var/datum/lore/location/x in destination_system.locations)
+ if(selected_mission.mission_type in x.mission_types)
+ selected_location = x
+ break
+
+ //set our ship name for consistancy on the tracon
+ current_ship = "[selected_mission.prefix] [pick(ship_names)]"
+
+ //finally return our answer
+ return "[current_ship] on a [pick(selected_mission.mission_strings)] [pick(mission_noun)] to [selected_location.desc]"
+
//////////////////////////////////////////////////////////////////////////////////
@@ -183,7 +227,7 @@
short_name = "NanoTrasen"
acronym = "NT"
desc = "NanoTrasen is one of the foremost research and development companies in SolGov space. \
- Originally focused on consumer products, their swift move into the field of Phoron has lead to \
+ Originally focused on consumer products, their swift move into the field of phoron has lead to \
them being the foremost experts on the substance and its uses. In the modern day, NanoTrasen prides \
itself on being an early adopter to as many new technologies as possible, often offering the newest \
products to their employees. In an effort to combat complaints about being 'guinea pigs', Nanotrasen \
@@ -197,8 +241,53 @@
work = "research giant"
headquarters = "Luna, Sol"
motto = ""
+ legit = 95 //they own the local airspace
+
+ missions = list( // they get almost every mission type because they're, you know, NT
+ new /datum/lore/mission/prebuilt/medical("NMV"),
+ new /datum/lore/mission/prebuilt/transport("NTV"),
+ new /datum/lore/mission/prebuilt/defense("NDV"),
+ new /datum/lore/mission/prebuilt/freight("NFV"),
+ new /datum/lore/mission/prebuilt/industrial("NIV"),
+ new /datum/lore/mission/prebuilt/scientific("NSV"),
+ new /datum/lore/mission/prebuilt/salvage("NIV"),
+ new /datum/lore/mission/prebuilt/medical_response("NRV"),
+ new /datum/lore/mission/prebuilt/defense_response("NRV")
+ )
+
+ serviced = list( //again, protagonists, so this is something close to a map by trade distance of human+tajaran space
+ /datum/lore/system/vir = 20,
+ /datum/lore/system/sol = 15,
+ /datum/lore/system/gavel = 15,
+ /datum/lore/system/oasis = 15,
+ /datum/lore/system/saint_columbia = 10,
+ /datum/lore/system/kess_gendar = 10,
+ /datum/lore/system/tau_ceti = 10,
+ /datum/lore/system/alpha_centauri = 10,
+ /datum/lore/system/new_ohio = 10,
+ /datum/lore/system/new_seoul = 10,
+ /datum/lore/system/el = 10, //specific high NT investment
+ /datum/lore/system/nyx = 10,
+ /datum/lore/system/zhu_que = 5,
+ /datum/lore/system/love = 5,
+ /datum/lore/system/kauqxum = 5,
+ /datum/lore/system/sidhe = 5,
+ /datum/lore/system/mahimahi = 5,
+ /datum/lore/system/relan = 5,
+ /datum/lore/system/exalts_light = 5,
+ /datum/lore/system/rarkajar = 5,
+ /datum/lore/system/raphael = 5, //they own one of the raphaelite colonies
+ /datum/lore/system/mesomori = 2,
+ /datum/lore/system/arrathiir = 2,
+ /datum/lore/system/jahans_post = 2,
+ /datum/lore/system/abels_rest = 2,
+ /datum/lore/system/terminus = 2,
+ /datum/lore/system/eutopia = 2,
+ /datum/lore/system/altair = 2,
+ /datum/lore/system/neon_light = 1
+ )
+
- ship_prefixes = list("NSV" = "exploration", "NTV" = "hauling", "NDV" = "patrol", "NRV" = "emergency response", "NDV" = "asset protection")
//Scientist naming scheme
ship_names = list(
"Bardeen",
@@ -244,26 +333,6 @@
)
- destination_names = list(
- "NSS Exodus in Nyx",
- "NCS Northern Star in Vir",
- "NLS Southern Cross in Vir",
- "a dockyard orbiting Sif",
- "an asteroid orbiting Kara",
- "an asteroid orbiting Rota",
- "Vir Interstellar Spaceport"
- )
-
-/datum/lore/organization/tsc/nanotrasen/New()
- ..()
- spawn(1) // BYOND shenanigans means using_map is not initialized yet. Wait a tick.
- // Get rid of the current map from the list, so ships flying in don't say they're coming to the current map.
- var/string_to_test = "[using_map.station_name] in [using_map.starsys_name]"
- if(string_to_test in destination_names)
- destination_names.Remove(string_to_test)
-
-
-
/datum/lore/organization/tsc/hephaestus
name = "Hephaestus Industries"
short_name = "Hephaestus"
@@ -278,7 +347,37 @@
headquarters = "Luna, Sol"
motto = ""
- ship_prefixes = list("HTV" = "freight", "HLV" = "munitions resupply", "HDV" = "asset protection", "HDV" = "preemptive deployment")
+ missions = list(
+ new/datum/lore/mission/prebuilt/defense("HDV"),
+ new/datum/lore/mission/prebuilt/industrial("HLV"),//to avoid unfortunate prefixes
+ new/datum/lore/mission/prebuilt/freight("HFV"),
+ new/datum/lore/mission/prebuilt/transport("HTV"),
+ new/datum/lore/mission("HSV", list("weapons testing", "materials testing", "data exchange"), ATC_SCI) //might produce slightly weird results vis a vis location
+ )
+
+ serviced = list(
+ /datum/lore/system/vir = 10, //local space (local operations significantly reduced)
+ /datum/lore/system/sol = 20,
+ /datum/lore/system/oasis = 15, //local + on the border
+ /datum/lore/system/saint_columbia = 15, //SCG military outposts
+ /datum/lore/system/jahans_post = 15,
+ /datum/lore/system/tau_ceti = 15, //specifically named local operations
+ /datum/lore/system/kess_gendar = 15,
+ /datum/lore/system/alpha_centauri = 10,
+ /datum/lore/system/abels_rest = 10,
+ /datum/lore/system/new_ohio = 10, //is very obviously a big border thing
+ /datum/lore/system/gavel = 10, //local
+ /datum/lore/system/sidhe = 5, //other systems w/ piracy problems and governments addressing them
+ /datum/lore/system/love = 5,
+ /datum/lore/system/zhu_que = 5,
+ /datum/lore/system/raphael = 5,
+ /datum/lore/system/new_seoul = 5,//national capitals that are vaguely scg friendly
+ /datum/lore/system/rarkajar = 5,
+ /datum/lore/system/terminus = 2,
+ /datum/lore/system/whythe = 1, //very good national contractors are allowed to poke at the fucked up hell ruins
+ /datum/lore/system/isavaus_gamble = 1,
+ )
+
//War God/Soldier Theme
ship_names = list(
"Ares",
@@ -323,14 +422,6 @@
"Yamamoto",
"Bismarck"
)
- destination_names = list(
- "a SolGov dockyard on Luna",
- "a SolGov dockyard in Saint Columbia",
- "an anti-piracy outpost in The Bowl",
- "a Fleet outpost on the Almach border",
- "a Fleet outpost on the Moghes border",
- "a Five Arrows outpost in the Sagittarius Heights",
- )
/datum/lore/organization/tsc/vey_med
name = "Vey-Medical"
@@ -347,9 +438,37 @@
work = "medical equipment supplier"
headquarters = "Toledo, New Ohio"
motto = ""
+ legit = 80 //major NT competitor + dirty aliens etc
- ship_prefixes = list("VTV" = "transportation", "VMV" = "medical resupply", "VSV" = "research mission", "VRV" = "emergency medical support")
- // Diona names
+ missions = list(
+ new/datum/lore/mission/prebuilt/medical("VMV"),
+ new/datum/lore/mission/prebuilt/medical_response("VRV"),
+ new/datum/lore/mission/prebuilt/scientific("VSV"),
+ new/datum/lore/mission/prebuilt/transport("VTV")
+ )
+
+ serviced = list(
+ /datum/lore/system/vir = 15,
+ /datum/lore/system/new_ohio = 15, //their HQ
+ /datum/lore/system/gavel = 10,
+ /datum/lore/system/oasis = 10,
+ /datum/lore/system/sol = 10,
+ /datum/lore/system/kauqxum = 10, //activity mostly in the heights
+ /datum/lore/system/new_seoul = 10,
+ /datum/lore/system/mahimahi = 10, //im guessing wildly about mahi-mahi i know nothing
+ /datum/lore/system/sidhe = 5,
+ /datum/lore/system/qerrvalis = 5, //one of very few organizations that will actually operate out that far
+ /datum/lore/system/tau_ceti = 5,
+ /datum/lore/system/alpha_centauri = 5,
+ /datum/lore/system/kess_gendar = 5,
+ /datum/lore/system/exalts_light = 5, //delicious almachi medicine
+ /datum/lore/system/relan = 5,
+ /datum/lore/system/vounna = 5,
+ /datum/lore/system/el = 2,
+ /datum/lore/system/eutopia = 2
+ )
+
+ // Mostly Diona names
ship_names = list(
"Wind That Stirs The Waves",
"Sustained Note Of Metal",
@@ -374,17 +493,12 @@
"Memory of Kel'xi",
"Xi'Kroo's Herald"
)
- destination_names = list(
- "a research facility in Samsara",
- "a SDTF near Ue-Orsi",
- "a sapientarian mission in the Almach Rim"
- )
/datum/lore/organization/tsc/zeng_hu
name = "Zeng-Hu Pharmaceuticals"
short_name = "Zeng-Hu"
acronym = "ZH"
- desc = "Zeng-Hu is an old TSC, based in the Sol system. Until the discovery of Phoron, Zeng-Hu maintained a stranglehold \
+ desc = "Zeng-Hu is an old TSC, based in the Sol system. Until the discovery of phoron, Zeng-Hu maintained a stranglehold \
on the market for medications, and many household names are patentted by Zeng-Hu-- Bicaridyne, Dylovene, Tricordrizine, \
and Dexalin all came from a Zeng-Hu medical laboratory. Zeng-Hu's fortunes have been in decline as Nanotrasen's near monopoly \
on phoron research cuts into their R&D and Vey-Med's superior medical equipment effectively decimated their own equipment \
@@ -393,10 +507,32 @@
history = ""
work = "pharmaceuticals company"
headquarters = "Earth, Sol"
- motto = ""
+ motto = "When your life is on the line, trust Zeng-Hu." //from the wiki
+ legit = 85 // major NT competitor
- ship_prefixes = list("ZTV" = "transportation", "ZMV" = "medical resupply")
- destination_names = list()
+ missions = list(
+ new /datum/lore/mission/prebuilt/medical("ZMV"), //they dont really like. do emergency medical shit. they just kind of sell drugs.
+ new /datum/lore/mission/prebuilt/transport("ZTV"),
+ new /datum/lore/mission/prebuilt/scientific("ZSV")
+ )
+
+ serviced = list( //some of this list is veering perilously close to just making shit up tbh
+ /datum/lore/system/vir = 10,
+ /datum/lore/system/sol = 15,
+ /datum/lore/system/alpha_centauri = 10,
+ /datum/lore/system/tau_ceti = 10,
+ /datum/lore/system/kess_gendar = 10,
+ /datum/lore/system/new_ohio = 5,
+ /datum/lore/system/new_seoul = 5,
+ /datum/lore/system/mahimahi = 5,
+ /datum/lore/system/saint_columbia = 5, //i imagine they have decent SCG hospital contracts compared to vey-med (foreign) and nanotrasen (super shifty)
+ /datum/lore/system/jahans_post = 5,
+ /datum/lore/system/abels_rest = 5,
+ /datum/lore/system/love = 2,
+ /datum/lore/system/zhu_que = 2,
+ /datum/lore/system/sidhe = 2,
+ /datum/lore/system/vounna = 2 //i imagine theyre mostly being squeezed out of the almachi investment rush given kalediscope and their poor positioning in general
+ )
/datum/lore/organization/tsc/ward_takahashi
name = "Ward-Takahashi General Manufacturing Conglomerate"
@@ -406,14 +542,54 @@
and even mid-class automobiles a fixture of many households. Less famously, Ward-Takahashi also supplies most \
of the AI cores on which vital control systems are mounted, and it is this branch of their industry that has \
led to their tertiary interest in the development and sale of high-grade AI systems. Ward-Takahashi's economies \
- of scale frequently steal market share from Nanotrasen's high-price products, leading to a bitter rivalry in the \
+ of scale frequently steal market share from NanoTrasen's high-price products, leading to a bitter rivalry in the \
consumer electronics market."
history = ""
work = "electronics manufacturer"
headquarters = ""
motto = ""
+ legit = 85 //major NT competitor
+
+ missions = list(
+ new /datum/lore/mission/prebuilt/freight("WFV"),
+ new /datum/lore/mission/prebuilt/transport("WTV"),
+ new /datum/lore/mission/prebuilt/industrial("WIV"),
+ new /datum/lore/mission/prebuilt/scientific("WSV"),
+ new /datum/lore/mission/prebuilt/defense("WDV")
+ )
+
+ serviced = list( //pretty similar to the NT map-- they're NT's biggest competitor on like, half their things
+ /datum/lore/system/vir = 10, //squeezed out by big NT
+ /datum/lore/system/sol = 15,
+ /datum/lore/system/gavel = 10,
+ /datum/lore/system/oasis = 10,
+ /datum/lore/system/kess_gendar = 10,
+ /datum/lore/system/tau_ceti = 10,
+ /datum/lore/system/alpha_centauri = 10,
+ /datum/lore/system/new_ohio = 10,
+ /datum/lore/system/new_seoul = 10,
+ /datum/lore/system/saint_columbia = 5,
+ /datum/lore/system/el = 5,
+ /datum/lore/system/zhu_que = 5,
+ /datum/lore/system/love = 5,
+ /datum/lore/system/kauqxum = 5,
+ /datum/lore/system/sidhe = 5,
+ /datum/lore/system/mahimahi = 5,
+ /datum/lore/system/relan = 5,
+ /datum/lore/system/exalts_light = 5,
+ /datum/lore/system/rarkajar = 5,
+ /datum/lore/system/terminus = 5,
+ /datum/lore/system/eutopia = 5, //computer manufacturers love unfree labor
+ /datum/lore/system/altair = 5,
+ /datum/lore/system/phact = 5, //historic ties. the name also helps
+ /datum/lore/system/mesomori = 2,
+ /datum/lore/system/arrathiir = 2,
+ /datum/lore/system/jahans_post = 2,
+ /datum/lore/system/abels_rest = 2,
+ /datum/lore/system/raphael = 2,
+ /datum/lore/system/neon_light = 1
+ )
- ship_prefixes = list("WFV" = "freight", "WTV" = "transport", "WDV" = "asset protection")
ship_names = list(
"Comet",
"Aurora",
@@ -444,9 +620,6 @@
"Milky Way",
"Trojan"
)
- destination_names = list(
- "A manufacturing facility in the Almach Protectorate"
- )
/datum/lore/organization/tsc/bishop
name = "Bishop Cybernetics"
@@ -463,27 +636,70 @@
headquarters = ""
motto = ""
- ship_prefixes = list("ITV" = "transportation", "ISV" = "research exchange") //Bishop can't afford / doesn't care enough to afford its own prefixes
- destination_names = list(
- "a medical facility in Angessa's Pearl"
+ missions = list(
+ new /datum/lore/mission/prebuilt/transport("ITV"), //Bishop can't afford / doesn't care enough to afford its own prefixes
+ new /datum/lore/mission("ISV", list("data exchange", "data collection", "prototype demonstration"), ATC_SCI), //bishop doesn't really, like, stellaris scan anomalies.
+ )
+
+ serviced = list( //wealthy, nearby-ish systems-- theyre not a huge operation and theyre not really going to put up a big boutique in saint columbia
+ /datum/lore/system/vir = 15,
+ /datum/lore/system/sol = 10,
+ /datum/lore/system/oasis = 10,
+ /datum/lore/system/gavel = 10,
+ /datum/lore/system/alpha_centauri = 5,
+ /datum/lore/system/tau_ceti = 5,
+ /datum/lore/system/new_seoul = 5,
+ /datum/lore/system/exalts_light = 5, //recklessly extrapolating from the old version of the lore page that they probably have some significant presence here
+ /datum/lore/system/new_ohio = 2,
+ /datum/lore/system/altair = 2, //they dont /sell/ here but they produce here
+ /datum/lore/system/eutopia = 2,
+ /datum/lore/system/relan = 2,
+ /datum/lore/system/neon_light = 1
)
/datum/lore/organization/tsc/morpheus
- name = "Morpheus Cyberkinetics"
- short_name = "Morpheus"
- acronym = "MC"
+ name = "Morpheus Cyberkinetics - Sol Branch"
+ short_name = "Morpheus Sol"
+ acronym = "MC-S"
desc = "The only large corporation run by positronic intelligences, Morpheus caters almost exclusively to their sensibilities \
- and needs. A product of the synthetic colony of Shelf, Morpheus eschews traditional advertising to keep their prices low and \
+ and needs. Originally product of the synthetic colony of Shelf, Morpheus eschews traditional advertising to keep their prices low and \
relied on word of mouth among positronics to reach their current economic dominance. Morpheus in exchange lobbies heavily for \
positronic rights, sponsors positronics through their Jans-Fhriede test, and tends to other positronic concerns to earn them \
- the good-will of the positronics, and the ire of those who wish to exploit them."
+ the good-will of the positronics, and the ire of those who wish to exploit them. Morpheus Sol is legally distinct from its \
+ Shelfican counterpart, though both are notionally headed by the same board of directors."
history = ""
work = "cybernetics manufacturer"
- headquarters = "Shelf"
+ headquarters = "Sophia, El" //ancient discord lore but also just a really reasonable extrapolation from everything
motto = ""
+ legit = 75 // hey remember that time they blew up a star. and then everything sucked for everyone.
- ship_prefixes = list("MTV" = "freight")
- // Culture names, because Anewbe told me so.
+ missions = list(
+ new /datum/lore/mission/prebuilt/freight("MFV"),
+ new /datum/lore/mission/prebuilt/transport("MTV"),
+ new /datum/lore/mission/prebuilt/scientific("MSV"), // this is the MSV We Didn't Do It! on a data collection flight to an anomaly in whythe
+ new /datum/lore/mission/prebuilt/defense("MDV") //ive been giving defense fleets to every "major" TSC but morph's narrow focus and Obvious Sleeziness means they might not even want one?
+ )
+
+ serviced = list( //pretty flat weighting structure -- a lot of posi-majority systems are on the other end of Sol so it kinda works out that way
+ /datum/lore/system/vir = 15,
+ /datum/lore/system/el = 15,
+ /datum/lore/system/sol = 10,
+ /datum/lore/system/gavel = 10,
+ /datum/lore/system/oasis = 10, //somehow i imagine they do not really operate openly in Saint Columbia anymore
+ /datum/lore/system/kess_gendar = 5,
+ /datum/lore/system/tau_ceti = 5,
+ /datum/lore/system/terminus = 10,
+ /datum/lore/system/raphael = 10,
+ /datum/lore/system/relan = 10,
+ /datum/lore/system/exalts_light = 5,
+ /datum/lore/system/new_ohio = 5,
+ /datum/lore/system/new_seoul = 5,
+ /datum/lore/system/zhu_que = 5, //apparently they have a voter farm??
+ /datum/lore/system/love = 2,
+ /datum/lore/system/neon_light = 2,
+ /datum/lore/system/alpha_centauri = 2,
+ /datum/lore/system/whythe = 1 //oh god
+ )
ship_names = list(
"Nervous Energy",
"Prosthetic Conscience",
@@ -583,10 +799,7 @@
"Define Offensive",
"Tiffany",
"My Other Ship is A Gestalt",
- "NTV HTV WTV ITV ZTV"
- )
- destination_names = list(
- "a trade outpost in Terminus"
+ "NTV HTV WTV ITV ZTV",
)
/datum/lore/organization/tsc/xion
@@ -601,8 +814,40 @@
headquarters = ""
motto = ""
- ship_prefixes = list("XTV" = "hauling", "XFV" = "bulk transport", "XIV" = "resupply")
- destination_names = list()
+ missions = list(
+ new /datum/lore/mission/prebuilt/freight("XFV"),
+ new /datum/lore/mission/prebuilt/transport("XTV"),
+ new /datum/lore/mission/prebuilt/industrial("XIV"),
+ new /datum/lore/mission/prebuilt/salvage("XIV"),
+ new /datum/lore/mission/prebuilt/defense("XDV"),
+ )
+
+ serviced = list(
+ /datum/lore/system/vir = 10,
+ /datum/lore/system/sol = 15,
+ /datum/lore/system/alpha_centauri = 20, // they own a fucking moon
+ /datum/lore/system/tau_ceti = 15,
+ /datum/lore/system/gavel = 15, //vaguely remember there being obscure lore that said gavel does mining?
+ /datum/lore/system/new_seoul = 10,
+ /datum/lore/system/love = 10,
+ /datum/lore/system/zhu_que = 10,
+ /datum/lore/system/saint_columbia = 10,
+ /datum/lore/system/new_ohio = 5,
+ /datum/lore/system/oasis = 5,
+ /datum/lore/system/sidhe = 5,
+ /datum/lore/system/mahimahi = 5,
+ /datum/lore/system/jahans_post = 5,
+ /datum/lore/system/abels_rest = 5,
+ /datum/lore/system/raphael = 5, // they own a celestial body here too
+ /datum/lore/system/rarkajar = 5, // i love building extractive capital in developing nations
+ /datum/lore/system/exalts_light = 5,
+ /datum/lore/system/relan = 2, //i think relan mostly nationalized a bunch of their industries but like. they are not really in a bargaining position rn
+ /datum/lore/system/eutopia = 2,
+ /datum/lore/system/vounna = 2,
+ /datum/lore/system/mesomori = 2,
+ /datum/lore/system/arrathiir = 2,
+ /datum/lore/system/isavaus_gamble = 1 //they used to run salvage ops here and might as well keep doing it
+ )
/datum/lore/organization/tsc/mbt
name = "Major Bill's Transportation"
@@ -615,9 +860,47 @@
work = "courier and passenger transit"
headquarters = "Mars, Sol"
motto = "With Major Bill's, you won't pay major bills!"
+ annoying = 100 //oh god
- ship_prefixes = list("TTV" = "transport", "TTV" = "luxury transit")
- destination_names = list()
+ missions = list(
+ new /datum/lore/mission/prebuilt/transport("TTV"),
+ new /datum/lore/mission/prebuilt/freight("TFV"),
+ new /datum/lore/mission/prebuilt/luxury("TTV")
+ )
+
+ serviced = list( // and THIS is basically just a population map of known space, slightly adjusted for distance
+ /datum/lore/system/vir = 5, //ppl mostly do not use major bills for in-system stuff, is my sense of it
+ /datum/lore/system/sol = 25,
+ /datum/lore/system/alpha_centauri = 20,
+ /datum/lore/system/tau_ceti = 20,
+ /datum/lore/system/kess_gendar = 15,
+ /datum/lore/system/new_seoul = 15,
+ /datum/lore/system/oasis = 15,//tourism pull
+ /datum/lore/system/kauqxum = 15,
+ /datum/lore/system/gavel = 10,
+ /datum/lore/system/saint_columbia = 10,
+ /datum/lore/system/mahimahi = 10,
+ /datum/lore/system/zhu_que = 10,
+ /datum/lore/system/love = 10,
+ /datum/lore/system/el = 10,
+ /datum/lore/system/abels_rest = 10,
+ /datum/lore/system/rarkajar = 5,
+ /datum/lore/system/eutopia = 5, //tourism pull
+ /datum/lore/system/raphael = 5,
+ /datum/lore/system/jahans_post = 5,
+ /datum/lore/system/relan = 5,
+ /datum/lore/system/exalts_light = 5,
+ /datum/lore/system/terminus = 3,
+ /datum/lore/system/phact = 3, //people really want to see the dumb castle
+ /datum/lore/system/qerrvalis = 3,
+ /datum/lore/system/nyx = 3,
+ /datum/lore/system/mesomori = 2,
+ /datum/lore/system/vounna = 2,
+ /datum/lore/system/arrathiir = 2,
+ /datum/lore/system/neon_light = 2
+ )
+
+//TODO: add in other tscs-- kaleidoscope, SAARE, and PCRC for sure but maybe also gilthari,grayson, aether
/datum/lore/organization/tsc/independent
name = "Free Traders"
@@ -626,10 +909,49 @@
history = ""
work = "trade and transit"
headquarters = "N/A"
- motto = "N/A"
+ motto = ""
+ legit = 85 //kinda amateurish
- ship_prefixes = list("IEV" = "prospecting", "IEC" = "prospecting", "IFV" = "bulk freight", "ITV" = "passenger transport", "ITC" = "just-in-time delivery")
- destination_names = list()
+ missions = list( //my sense is theres not really free trader medical or defense craft worth mentioning -- or, i guess more accurately, an "independent defense vessel" is probably just a pirate
+ new /datum/lore/mission/prebuilt/transport("ITV"),
+ new /datum/lore/mission/prebuilt/freight("IFV"),
+ new /datum/lore/mission/prebuilt/industrial("IIV"),
+ new /datum/lore/mission/prebuilt/salvage("IIV")
+ )
+
+ serviced = list( // basically an adjusted version of the Major Bills chart but a little more evenly weighted, with some more bias towards otherwise underserved systems and with some more off-the-grid locations about it
+ /datum/lore/system/vir = 20,
+ /datum/lore/system/sol = 15,
+ /datum/lore/system/alpha_centauri = 15,
+ /datum/lore/system/tau_ceti = 15,
+ /datum/lore/system/zhu_que = 15,
+ /datum/lore/system/love = 15,
+ /datum/lore/system/kess_gendar = 10,
+ /datum/lore/system/new_seoul = 10,
+ /datum/lore/system/kauqxum = 10,
+ /datum/lore/system/gavel = 10,
+ /datum/lore/system/oasis = 10,
+ /datum/lore/system/el = 10,
+ /datum/lore/system/abels_rest = 5,
+ /datum/lore/system/mahimahi = 5,
+ /datum/lore/system/saint_columbia = 5,
+ /datum/lore/system/rarkajar = 5,
+ /datum/lore/system/eutopia = 5,
+ /datum/lore/system/raphael = 5,
+ /datum/lore/system/jahans_post = 5,
+ /datum/lore/system/relan = 5,
+ /datum/lore/system/exalts_light = 5,
+ /datum/lore/system/natuna = 5,
+ /datum/lore/system/casinis_reach = 5, //i laborously enscribed special snowflake code for an authentically immersive communard experience and then have them trading with exactly one org
+ /datum/lore/system/nyx = 5,
+ /datum/lore/system/neon_light = 3,
+ /datum/lore/system/terminus = 3,
+ /datum/lore/system/phact = 2,
+ /datum/lore/system/mesomori = 2,
+ /datum/lore/system/vounna = 2,
+ /datum/lore/system/arrathiir = 2,
+ /datum/lore/system/isavaus_gamble = 2 //literally dont even worry officer i super have a permit for this
+ )
/datum/lore/organization/local_traffic
name = "independent traffic"
@@ -638,10 +960,24 @@
history = ""
work = "trade and transit"
headquarters = "N/A"
- motto = "N/A"
- autogenerate_destination_names = FALSE
+ motto = ""
+ legit = 80 //extremely amateurish
+
+ missions = list(
+ new /datum/lore/mission("ITC", list("local shuttle service", "private transport"), ATC_TRANS),
+ new /datum/lore/mission("IFC", list("courier", "local delivery", "just-in-time delivery"), ATC_FREIGHT),
+ new /datum/lore/mission("IIC", list("local maintence", "repair", "in-situ manufacturing"), ATC_INDU),
+ new /datum/lore/mission("ISC", list("test flight", "local university research", "data collection"), ATC_SCI),
+ new /datum/lore/mission/prebuilt/luxury("ITC"),
+ new /datum/lore/mission/prebuilt/medical_response("IMC"),
+ new /datum/lore/mission/prebuilt/defense_response("IDC"),
+ new /datum/lore/mission/prebuilt/salvage("IIC")
+ )
+
+ serviced = list(
+ /datum/lore/system/vir = 1 // the one thing that's uncomplicated about the new system
+ )
- ship_prefixes = list("ITC" = "local shuttle service", "ITC" = "luxury transit", "ITC" = "pleasure cruise", "ITC" = "private transport", "IFC" = "courier", "IFC" = "local delivery", "IIC" = "maintenance", "IMC" = "medical response")
ship_names = list(
"Ambition",
"Blue Moon",
@@ -673,29 +1009,6 @@
"Savik"
)
- destination_names = list(
- "New Reykjavik",
- "Kalmar",
- "Ekmanshalvo",
- "a settlement on Sif",
- "a corporate facility on Sif",
- "the Ullran Expanse",
- "Kaltsandur",
- "Amundsen",
- "Londuneyja",
- "the Thorvaldsson Plains",
- "the NCS Northern Star",
- "a location in the Sivian wilderness",
- "Sif orbit",
- "the rings of Kara",
- "the rings of Rota",
- "Firnir orbit",
- "Tyr orbit",
- "Magni orbit",
- "a vessel in Vir territory",
- "a mining outpost"
- )
-
// Governments
/datum/lore/organization/gov/virgov
@@ -705,7 +1018,7 @@
out of New Reykjavik on Sif. It is a representative democratic government, and a fully recognised member of the \
Confederation.\
\
- Corporate entities such as Nanotrasen which operate on Sif, in Vir space, or on other bodies in the Vir system must \
+ Corporate entities such as NanoTrasen which operate on Sif, in Vir space, or on other bodies in the Vir system must \
all comply with legislation as determined by the VGA and SolGov. As a result, any serious criminal offences, \
industrial accidents, or concerning events should be forwarded to the VGA in the event that assistance or \
communication is required from the Vir Police, Vir Defence Force, Vir Interior Ministry, or other important groups."
@@ -713,9 +1026,21 @@
work = "governing body of Vir"
headquarters = "New Reykjavik, Sif, Vir"
motto = ""
- autogenerate_destination_names = FALSE
+ legit = 95 //government
+
+ missions = list( //most transport and freight is privatized. sifguard is its own org for whatever reason
+ new /datum/lore/mission("VGA", list("energy relay", "emergency resupply", "restricted material transport"), ATC_FREIGHT),
+ new /datum/lore/mission("VGA", list("refugee transport", "prison transport"), ATC_TRANS),
+ new /datum/lore/mission/prebuilt/diplomatic("VGA"), //local zaddat colonies
+ new /datum/lore/mission/prebuilt/scientific("VGA")
+ )
+
+ serviced = list(
+ /datum/lore/system/vir = 10, //unsurprisingly, mostly stays in vir
+ /datum/lore/system/gavel = 1, //sometimes does some limited local cooperative diplomacy or emergency response
+ /datum/lore/system/oasis = 1
+ )
- ship_prefixes = list("VGA" = "hauling", "VGA" = "energy relay", "VGA" = "private transport")
ship_names = list(
"Alfred Nobel",
"Anders Celcius",
@@ -744,17 +1069,6 @@
"Thingvellir"
)
- destination_names = list(
- "New Reykjavik on Sif",
- "Kalmar on Sif",
- "Ekmanshalvo on Sif",
- "a settlement on Sif",
- "Radiance Energy Chain",
- "a dockyard orbiting Sif",
- "a telecommunications satellite",
- "Vir Interstellar Spaceport"
- )
-
/datum/lore/organization/gov/solgov
name = "Solar Confederate Government"
short_name = "SolGov"
@@ -775,16 +1089,62 @@
work = "governing polity of humanity's Confederation"
headquarters = "Luna, Sol"
motto = "Nil Mortalibus Ardui Est" // Latin, because latin. Says 'Nothing is too steep for mortals'.
- autogenerate_destination_names = TRUE
+ legit = 95 //government
- ship_prefixes = list("SCG-T" = "transportation", "SCG-D" = "diplomatic", "SCG-F" = "freight", "SCG-M" = "medical response")
- destination_names = list(
- "Venus",
- "Earth",
- "Luna",
- "Mars",
- "Titan"
- )// autogen will add a lot of other places as well.
+ missions = list(
+ new /datum/lore/mission("SCG-T", list("transport", "passenger transport", "prisoner transport", "refugee resettlement", "classified"), ATC_TRANS),
+ new /datum/lore/mission("SCG-F", list("emergency resupply", "hazardous material transport", "strategic resupply", "classified"), ATC_FREIGHT),
+ new /datum/lore/mission("SCG-E", list("damage assesment", "data recovery", "classified"), ATC_SALVAGE),
+ new /datum/lore/mission("SCG-D", list("defense", "patrol", "military response", "joint exercise", "classified"), ATC_DEF),
+ new /datum/lore/mission/prebuilt/scientific("SCG-S"),
+ new /datum/lore/mission/prebuilt/diplomatic("SCG-D"), //local zaddat colonies, independent earth nations, internal diplomatic missions to embassies in Sol, abels rest. actual foreign diplomacy happens elsewhere
+ new /datum/lore/mission/prebuilt/medical_response("SCG-M"),
+ new /datum/lore/mission/prebuilt/defense_response("SCG-D")
+ )
+
+ serviced = list(
+ /datum/lore/system/vir = 10,
+ /datum/lore/system/sol = 25,
+ /datum/lore/system/alpha_centauri = 20,
+ /datum/lore/system/tau_ceti = 20,
+ /datum/lore/system/kess_gendar = 20,
+ /datum/lore/system/saint_columbia = 20,
+ /datum/lore/system/jahans_post = 15,
+ /datum/lore/system/abels_rest = 15,
+ /datum/lore/system/el = 10,
+ /datum/lore/system/raphael = 10,
+ /datum/lore/system/altair = 10,
+ /datum/lore/system/zhu_que = 10,
+ /datum/lore/system/love = 5,
+ /datum/lore/system/isavaus_gamble = 3,
+ /datum/lore/system/whythe = 2 //not in scg space but im sure they can still get at it
+ )
+
+//kind of experimental
+//lets SCG do diplomacy but not eg military action in foreign systems
+//in the future, similar splits could allow corps to have 'core' defense assets they dont send on idiotic military actions to Vounna
+//could also be expanded with fluff ala VGA/Sifguard
+/datum/lore/organization/gov/solgov/diplo_corps
+ missions = list(
+ new /datum/lore/mission/prebuilt/diplomatic("SCG-D")
+ )
+ serviced = list(
+ /datum/lore/system/qerrvalis = 15, //capital systems of major interstellar powers
+ /datum/lore/system/rarkajar = 15,
+ /datum/lore/system/new_seoul = 15,
+ /datum/lore/system/relan = 15,
+ /datum/lore/system/casinis_reach = 10, //independent single systems
+ /datum/lore/system/eutopia = 10,
+ /datum/lore/system/phact = 10,
+ /datum/lore/system/natuna = 10,
+ /datum/lore/system/neon_light = 5, // neon light (neon light)
+ /datum/lore/system/exalts_light = 5, //noncapital systems of major interstellar powers
+ /datum/lore/system/vounna = 5,
+ /datum/lore/system/sidhe = 5,
+ /datum/lore/system/new_cairo = 3, //funny bugs
+ )
+//TODO add 5 Arrows, Protectorate, Pearlshield
+//maybe some other flavorful government agencies like the EIO or the GSA or SOFI
// Military
@@ -798,7 +1158,18 @@
work = "Vir Governmental Authority's military"
headquarters = "New Reykjavik, Sif"
motto = ""
- autogenerate_destination_names = FALSE // Kinda weird if SifGuard goes to Nyx.
+ legit = 95 // government
+
+ missions = list(
+ new /datum/lore/mission("VGA-PV", list("defense", "patrol", "military response", "joint exercise"), ATC_DEF),
+ new /datum/lore/mission/prebuilt/defense_response("VGA-PC")
+ )
+
+ serviced = list(
+ /datum/lore/system/vir = 10,
+ /datum/lore/system/gavel = 1,
+ /datum/lore/system/oasis = 1
+ )
ship_names = list(
"Halfdane",
@@ -827,26 +1198,4 @@
"Draken",
"Gladan",
"Falken"
- )
-
- ship_prefixes = list("VGA-PV" = "military", "VGA-PV" = "patrol", "VGA-PC" = "rescue", "VGA-PC" = "emergency response")
- destination_names = list(
- "New Reykjavik on Sif",
- "Kalmar on Sif",
- "Ekmanshalvo on Sif",
- "a settlement on Sif",
- "a location in the Sivian wilderness",
- "a classified location in Vir",
- "Sif orbit",
- "the rings of Kara",
- "the rings of Rota",
- "Firnir orbit",
- "Tyr orbit",
- "Magni orbit",
- "a wreck in VirGov territory",
- "a military outpost",
- "an incursion site within Vir",
- "rendezvous to an incursion site in Oasis",
- "rendezvous to an incursion site in Gavel"
- )
-
+ )
\ No newline at end of file
diff --git a/code/modules/busy_space/systems.dm b/code/modules/busy_space/systems.dm
new file mode 100644
index 0000000000..6bdc636d4d
--- /dev/null
+++ b/code/modules/busy_space/systems.dm
@@ -0,0 +1,602 @@
+/datum/lore/system
+ var/name = "" //the system's name
+ var/desc = "" // short description probably stolen from places on the wiki
+ var/history = "" //unused, but included for parity with /lore/organizations
+ var/autogenerate_destinations = TRUE // should probably be true for most systems, might be false for Sif or weird shit like Isavau's / Terminus / Silk
+ var/planets = list() //planetary destinations will automatically pick an inhabited terrestrial planet to be on. no planet == no planetary destinations. major planets only
+ var/space_destinations = list("a dockyard", "a station", "a vessel", "a waystation", "a satellite", "a spaceport", "an anomaly", "a habitat", "an outpost", "a facility", "a derelict", "a wreck", "a Skathari hotspot") // should be just fine for most systems, some might want individual entries culled from the autogen
+ var/planetary_destinations = list("a colony", "a dome", "an outpost", "a city", "a facility", "a ruin") //likewise
+ var/locations = list() // locations within the system. list of strings for now, might involve fancier logic later
+
+/datum/lore/system/New()
+ ..()
+ if(!autogenerate_destinations)
+ return
+ for(var/i in 1 to 3)// three random places per system per round should be plenty
+ var/initial = ""
+ var/mission = list()
+ if(rand(length(planets))) // equal chance of an event in local space or any individual planet
+ initial = pick(planetary_destinations)
+ if(initial in list("an outpost", "a facility", "a commune", "a settlement")) //some of these aren't in the default list but are used down the line
+ mission = list(ATC_TYPICAL)
+ else if(initial in list("a ruin"))
+ mission = list(ATC_SALVAGE)
+ else
+ mission = list(ATC_ALL_CIV)
+ locations += new /datum/lore/location((initial + " on " + pick(planets) + ", " + name), mission)
+ else
+ initial = pick(space_destinations)
+ if(initial in list("a waystation", "a satellite"))
+ mission = list(ATC_TRANS, ATC_FREIGHT, ATC_DEF, ATC_INDU) //generally unmanned so no medical or science jobs
+ else if(initial in list("an anomaly"))
+ mission = list(ATC_DEF, ATC_SCI) //theres kinda only two things to do about mysterious space wedgies)
+ else if(initial in list("a skathari hotspot"))
+ mission = list(ATC_DEF, ATC_MED)
+ else if(initial in list("a dockyard", "a station", "a vessel", "a spaceport", "an outpost", "a facility"))
+ mission = list(ATC_TYPICAL)
+ else if(initial in list("a derelict", "a wreck"))
+ mission = list(ATC_SALVAGE)
+ else
+ mission = list(ATC_ALL_CIV)
+ locations += new /datum/lore/location("[initial] in [name]", mission)
+
+//some of the locations with identical mission types could be compressed with pick expressions in a single location datum to improve weighting
+//this usually isn't super necessary and is often outright counterproductive so I haven't really done it
+
+//for reference: ATC_TYPICAL is medical, defense, freight, transport, and industrial missions-- the kind of traffic you'd see to a small settlement or independent colony of little note
+//ATC_ALL_CIV has ATC_TYPICAL plus luxury and scientific missions too, so it's the kind of traffic you'd see to a major cultural center
+//ATC_ALL has ATC_ALL_CIV plus diplomatic and salvage missions and really isn't appropriate for use in most places
+
+//ATC_SCI might need to get split into academic stuff and 'weird space wedgies'
+
+//SCG major systems
+/datum/lore/system/sol
+ name = "Sol"
+ desc = "Humanity's heartland. The most densely settled system in space. You know. Sol." //desc isn't currently used for anything so I'm being sparse for all of these in hopes of like, actually completing the project.
+ autogenerate_destinations = FALSE // it has more sites than literally anywhere else
+ planets = list("Earth", "Mars", "Luna", "Venus", "Titan", "Pluto") //not used but whatever
+ locations = list(
+ new /datum/lore/location("Baghdad on Earth, Sol", list(ATC_LUX)),
+ new /datum/lore/location("Paradise Bay on Earth, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Atlantis on Earth, Sol", list(ATC_INDU, ATC_SCI)),
+ new /datum/lore/location("Elevator City on Earth, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Antanavario on Earth, Sol", list(ATC_TYPICAL, ATC_DIPLO)), //they independent baybe
+ new /datum/lore/location("Paris on Earth, Sol", list(ATC_ALL_CIV, ATC_DIPLO)), //just a reasonable number of existing world cities that would not be underwater or desertified. by which i mean god please check my work on this.
+ new /datum/lore/location("Detroit on Earth, Sol", list(ATC_ALL_CIV, ATC_DIPLO)), //it's not clear which parts of earth are independent now so let's just assume the diplomatic corps is working on all of them
+ new /datum/lore/location("Dubai on Earth, Sol", list(ATC_ALL_CIV, ATC_DIPLO)),
+ new /datum/lore/location("Beijing on Earth, Sol", list(ATC_ALL_CIV, ATC_DIPLO)),
+ new /datum/lore/location("Dakar on Earth, Sol", list(ATC_ALL_CIV, ATC_DIPLO)),
+ new /datum/lore/location("Sao Paulo on Earth, Sol", list(ATC_ALL_CIV, ATC_DIPLO)),
+ new /datum/lore/location("Mojave University on Earth, Sol", list(ATC_SCI)),
+ new /datum/lore/location("a station orbitting Earth, Sol", list(ATC_ALL_CIV)),
+ new /datum/lore/location("a colony in Earth-Luna Lagrange Orbit in Sol", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Tycho on Luna, Sol", list(ATC_ALL_CIV)),
+ new /datum/lore/location("the Pearlshield Coalition embassy in Tycho, Luna, Sol", list(ATC_DIPLO)), // a lot of embassy spam but most orgs don't do diplomatic missions so they'll be ignored
+ new /datum/lore/location("the Moghes Hegemony embassy in Tycho, Luna, Sol", list(ATC_DIPLO)),
+ new /datum/lore/location("the Five Arrows embassy in Tycho, Luna, Sol", list(ATC_DIPLO)),
+ new /datum/lore/location("the Almach Protectorate embassy in Tycho, Luna, Sol", list(ATC_DIPLO)),
+ new /datum/lore/location("a skrellian embassy in Little Qerrbalak, Luna, Sol", list(ATC_DIPLO)),
+ new /datum/lore/location("an independent embassy on Luna, Sol", list(ATC_DIPLO)),
+ new /datum/lore/location("a dome on Luna, Sol", list(ATC_ALL_CIV)), //padding -- Luna's kind of a big deal relative to its number of named sites
+ new /datum/lore/location("a city on Luna, Sol", list(ATC_ALL_CIV)),
+ new /datum/lore/location("a Fleet base on Luna, Sol", list(ATC_TRANS, ATC_FREIGHT, ATC_INDU)), //fleet does their own defense and medical
+ new /datum/lore/location("the Armstrong Museum and Gift Shop on Luna, Sol", list(ATC_LUX)),
+ new /datum/lore/location("a Second Cold War battlefield on Luna, Sol", list(ATC_LUX)),
+ new /datum/lore/location("Tharsis on Mars, Sol", list(ATC_ALL_CIV)), //more padding
+ new /datum/lore/location("a facility in Tharsis, Mars, Sol", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Tharsis University on Mars, Sol", list(ATC_SCI)),
+ new /datum/lore/location("Olympus Mon on Mars, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Shudra's Retreat on Venus, Sol", list(ATC_LUX, ATC_TRANS, ATC_MED)),
+ new /datum/lore/location("Persephone on Venus, Sol", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Mariner University on Venus, Sol", list(ATC_SCI)),
+ new /datum/lore/location("an aerostat on Venus, Sol", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Nyborg on Pluto, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Makom Kal on Pluto, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Novy Krasnoyarsk on Pluto, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Xanadu on Titan, Saturn subsystem, Sol", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Seledon on Titan, Saturn subsystem, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Hammar on Titan, Saturn subsystem, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Bolsena on Titan, Saturn subsystem, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Sotra on Titan, Saturn subsystem, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Mercury, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Callisto, Jupiter subsystem, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Ganymede, Jupiter subsystem, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Io, Jupiter subsystem, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("a detention facility on Io, Jupiter subsystem, Sol", list(ATC_MED, ATC_TRANS)),
+ new /datum/lore/location("Europa, Jupiter subsystem, Sol", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Titania, Uranus subsystem, Sol", list(ATC_TYPICAL)),
+ new /datum/lore/location("Oberon, Uranus subsystem, Sol", list(ATC_TYPICAL, ATC_SCI)), //there's ancient discord lore that has a school here??
+ new /datum/lore/location("Neptune, Sol", list(ATC_TYPICAL))
+ )
+
+/datum/lore/system/vir
+ name = "Vir"
+ desc = "You Are Here. A crossroads system with a tendency towards sleepy isolation."
+ autogenerate_destinations = FALSE
+ planets = list("Sif")
+ locations = list(
+ new /datum/lore/location("New Rekjavik", list(ATC_ALL_CIV)), //sivian locations don't need 'on sif' and virite locations dont need 'in vir'-- theyre local
+ new /datum/lore/location("Kalmar", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Ekmanshalvo", list(ATC_ALL_CIV)),
+ new /datum/lore/location("a settlement on the Thorvaldsson Plains", list(ATC_TYPICAL)), //padding
+ new /datum/lore/location("a mining outpost in the Dauthabrekka Mountains", list(ATC_TYPICAL)),
+ new /datum/lore/location("a corporate facility in Stockholm-Skargard", list(ATC_TYPICAL, ATC_SCI)),
+ new /datum/lore/location("a site in the Ullran Expanse", list(ATC_MED, ATC_DEF, ATC_INDU)),
+ new /datum/lore/location("a location in the Anomalous Region", list(ATC_SCI)),
+ new /datum/lore/location("the NLS Southern Cross", list(ATC_DEF, ATC_INDU)),
+ new /datum/lore/location("the NCS Northern Star", list(ATC_TYPICAL, ATC_SCI)),
+ new /datum/lore/location("Vir Interstellar Spaceport", list(ATC_TYPICAL)),
+ new /datum/lore/location("Firnir", list(ATC_TYPICAL)),
+ new /datum/lore/location("Tyr", list(ATC_TYPICAL)),
+ new /datum/lore/location("Magnai", list(ATC_TYPICAL)),
+ new /datum/lore/location("the rings of Kara", list(ATC_LUX)),
+ new /datum/lore/location("the rings of Rota", list(ATC_LUX)),
+ new /datum/lore/location("the Radiance Energy Chain", list(ATC_FREIGHT, ATC_DEF, ATC_INDU)),
+ new /datum/lore/location("a corporate colony in the Kara subsystem", list(ATC_ALL_CIV)), //padding-- there should probably be more than one named kara colony anyway
+ new /datum/lore/location("an independent colony in the Kara subsystem", list(ATC_ALL_CIV)),
+ new /datum/lore/location("a phoron mine in the Kara subsystem", list(ATC_TYPICAL)),
+ new /datum/lore/location("a xenoarcheological dig in the Kara subsystem", list(ATC_TYPICAL, ATC_SCI)),
+ new /datum/lore/location("an Incursion derelict in local space", list(ATC_SALVAGE, ATC_DEF, ATC_SCI, ATC_INDU)),
+ new /datum/lore/location("Colony Bright", list(ATC_TYPICAL, ATC_DIPLO))
+ )
+
+/datum/lore/system/alpha_centauri
+ name = "Alpha Centauri"
+ desc = "The stars closest to Sol and the site of the first extrasolar colonies. The worlds orbitting Proxima Centauri were colonized by stateless refugees\
+ as part of an early SCG migration program.The habitats orbitting Alpha Centauri proper were colonized by radical terrorists fleeing Solar law enforcement.\
+ There is some tension."
+ planets = list("Kishar", "Anshar")
+ locations = list(
+ new /datum/lore/location("Kanondaga on Kishar, Alpha Centauri", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Putiya Nadu on Kishar, Alpha Centauri", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Oyo-ni-aaye on Kishar, Alpha Centauri", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Valhalla in Heaven, Alpha Centauri", list(ATC_TYPICAL)),
+ new /datum/lore/location("Elyisum in Heaven, Alpha Centauri", list(ATC_TYPICAL)),
+ new /datum/lore/location("the remains of Ragnarok, Alpha Centauri", list(ATC_INDU, ATC_FREIGHT, ATC_SCI)),
+ new /datum/lore/location("The Rings in Heaven, Alpha Centauri", list(ATC_ALL_CIV)),
+ new /datum/lore/location("The Angelic College at Heaven, Alpha Centauri", list(ATC_SCI))
+ )
+
+/datum/lore/system/tau_ceti
+ name = "Tau Ceti"
+ desc = "Home to the first discovered garden world other than Earth and the second largest population. Tends to be kind of isolationist and independently minded."
+ planets = list("Binma", "New Gibson")
+ locations = list(
+ new /datum/lore/location("Pelamance, Binma, Tau Ceti", list(ATC_ALL_CIV)), //pulling the list of city states from the Binma page was An Effort. may have missed some
+ new /datum/lore/location("New Florence, Binma, Tau Ceti", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Mandala Sur, Binma, Tau Ceti", list(ATC_ALL_CIV)),
+ new /datum/lore/location("the Kesalon, Binma, Tau Ceti", list(ATC_SCI, ATC_TRANS, ATC_LUX)),
+ new /datum/lore/location("the Hyperion Orbital Scaffhold around Binma, Tau Ceti", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Ceti Technical Institute, Binma, Tau Ceti", list(ATC_SCI)),
+ new /datum/lore/location("Aria, Tau Ceti", list(ATC_INDU, ATC_FREIGHT, ATC_LUX)),
+ new /datum/lore/location("LL1, Tau Ceti", list(ATC_INDU, ATC_FREIGHT, ATC_TRANS)),
+ new /datum/lore/location("LL2, Tau Ceti", list(ATC_INDU, ATC_FREIGHT, ATC_TRANS))
+ )
+
+/datum/lore/system/tau_ceti/New()
+ planetary_destinations -= "a dome" //binma is fully habitable. i think new gibson also is
+ ..()
+
+/datum/lore/system/kess_gendar
+ name = "Kess-Gendar"
+ desc = "A cosmopolitan system hosting the jungle world Nisp and a large orbital economy."
+ planets = list("Nisp")
+ locations = list(
+ new /datum/lore/location("Gorovan on Nisp, Kess-Gendar", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Janthir on Nisp, Kess-Gendar", list(ATC_ALL_CIV)),
+ new /datum/lore/location("al-Dubad on Nisp, Kess-Gendar", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Qixiang on Nisp, Kess-Gendar", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Theveste on Nisp, Kess-Gendar", list(ATC_TYPICAL, ATC_SCI)),
+ new /datum/lore/location("Eta Kess, Nisp orbit, Kess-Gendar", list(ATC_TYPICAL)),
+ new /datum/lore/location("Elysium, Kess-Gendar", list(ATC_TYPICAL)),
+ new /datum/lore/location("Colony Heedful, Kess-Gendar", list(ATC_TYPICAL, ATC_DIPLO))
+ )
+
+/datum/lore/system/el
+ name = "El"
+ desc = "Home system of the positronics and birthplace of the Positronic Rights Movement."
+ locations = list(
+ new /datum/lore/location("the First Factory in Sophia, El", list(ATC_LUX, ATC_FREIGHT)),
+ new /datum/lore/location("Gilthari Casino in Sophia, El", list(ATC_LUX, ATC_TRANS)),
+ new /datum/lore/location("the Old City in Sophia, El", list(ATC_FREIGHT, ATC_TRANS, ATC_DEF, ATC_SCI, ATC_LUX)),
+ new /datum/lore/location("the Pleroman Cathedral in Sophia, El", list(ATC_LUX, ATC_TRANS)),
+ new /datum/lore/location("a habitat block in Sophia, El", list(ATC_FREIGHT, ATC_TRANS, ATC_DEF)), //Sophia doesn't really get medical ships because it's all fucking robots
+ new /datum/lore/location("a Morpheus Sol facility in Sophia, El", list(ATC_FREIGHT, ATC_TRANS, ATC_DEF, ATC_SCI)), //padding -- autogenerated locations aren't going to play nicely with Sophia's topography
+ new /datum/lore/location("a datacenter in Sophia, El", list(ATC_FREIGHT, ATC_TRANS, ATC_DEF, ATC_SCI)),
+ new /datum/lore/location("a dig site in Sophia, El", list(ATC_TYPICAL, ATC_SCI)),
+ new /datum/lore/location("the MAS Sophia Jr. in El", list(ATC_TYPICAL, ATC_SCI))
+ )
+
+//it is objectively weird as hell that these are "major systems" but they have words on
+/datum/lore/system/nyx
+ name = "Nyx"
+ desc = "Human-colonized system furthest from Sol. Covered in weird phoron anomalies. Was not treated very nicely by the Incursion."
+ planets = list("Brinkburn", "Yulecite")
+ locations = list(
+ new /datum/lore/location("Moros, Nyx", list(ATC_TYPICAL)),
+ new /datum/lore/location("Erebus, Nyx", list(ATC_TYPICAL, ATC_SCI)),
+ new /datum/lore/location("Roanoke, Erebus subsystem, Nyx", list(ATC_TYPICAL)),
+ new /datum/lore/location("the NSS Exodus in Nyx", list(ATC_TYPICAL, ATC_SCI)),
+ new /datum/lore/location("the NAS Crescent in Nyx", list(ATC_TYPICAL)),
+ new /datum/lore/location("Talon's Bull in Nyx", list(ATC_TYPICAL)),
+ new /datum/lore/location("Emerald Habitation in Nyx", list(ATC_TYPICAL)),
+ new /datum/lore/location("the Void Star in Nyx", list(ATC_TRANS, ATC_FREIGHT, ATC_LUX)),
+ new /datum/lore/location("Euthenia, Nyx", list(ATC_TYPICAL)),
+ new /datum/lore/location("an Incursion wreck", list(ATC_SALVAGE))
+ )
+
+/datum/lore/system/altair //hey do you think altair like. survived the incursion actually
+ name = "Altair"
+ desc = "Once a promising nearby colonization site, Altair is now a very, very large prison."
+ space_destinations = list("a station", "a vessel", "a waystation", "an outpost", "an anomaly","a facility")
+ locations = list(
+ new /datum/lore/location("The Stack in Altair", list(ATC_TRANS, ATC_MED, ATC_DEF)),
+ new /datum/lore/location("Becquerel Station in Altair", list(ATC_TYPICAL))
+ )
+
+/datum/lore/system/altair/New()
+ space_destinations -= list("a dockyard", "a sattelite", "a spaceport", "a habitat") // altair kind of sucks
+ ..()
+
+//SolGov minor systems
+//limiting to systems that are at least, like, kind of described -- stuff like Ganesha and Stove which just have names and map points aren't making it until someone writes them up
+
+/datum/lore/system/jahans_post
+ name = "Jahan's Post"
+ desc = "Home to the biggest SCG observation post and an enormous Fleet base. Huge positronic population."
+ locations = list(
+ new /datum/lore/location("a weapons platform in Jahan's Post", list(ATC_INDU, ATC_FREIGHT, ATC_TRANS)),
+ new /datum/lore/location("a dreadnought in Jahan's Post", list(ATC_MED, ATC_INDU, ATC_TRANS, ATC_FREIGHT)), // no sense sending defense assets to a warship at dock
+ new /datum/lore/location("a battlecruiser in Jahan's Post", list(ATC_MED, ATC_INDU, ATC_TRANS, ATC_FREIGHT)),
+ new /datum/lore/location("a Fleet construction site in Jahan's Post", list(ATC_MED, ATC_INDU, ATC_TRANS, ATC_FREIGHT)),
+ new /datum/lore/location("an observatory in Jahan's Post", list(ATC_MED, ATC_INDU, ATC_TRANS, ATC_FREIGHT, ATC_SCI)),
+ new /datum/lore/location("a classified location in Jahan's Post", list(ATC_TYPICAL)),
+ new /datum/lore/location("a First Contact derelict in Jahan's Post", list(ATC_SALVAGE))
+ )
+/datum/lore/system/oasis
+ name = "Oasis"
+ desc = "A resort system controlled by Gilthari Industries and catering to Skrellian clientele. Part of the GCAB with Vir and Gavel. Famous for hate crimes against the Unathi."
+ planets = list("Mandrake")
+ locations = list(
+ new /datum/lore/location("a vista on Mandrake, Oasis", list(ATC_LUX)),
+ new /datum/lore/location("a resort on Mandrake, Oasis", list(ATC_LUX, ATC_TRANS, ATC_FREIGHT, ATC_MED)),
+ new /datum/lore/location("Gilthari Casino in orbit around Mandrake, Oasis", list(ATC_LUX, ATC_TRANS)),
+ new /datum/lore/location("a Golden Crescent Alliance base in Oasis", list(ATC_TYPICAL)),
+ new /datum/lore/location("Colony Ardent, Oasis", list(ATC_TYPICAL, ATC_DIPLO))
+ )
+
+/datum/lore/system/saint_columbia
+ name = "Saint Columbia"
+ desc = "Famous for constant attempted secessions, most recently as part of the Almach Crisis. Currently home to an enormous fleet base and a government that is totally not a junta."
+ locations = list( //transparently this is going to be pretty much identical to the Jahan's Post list with Almach-specific stuff afterwards
+ new /datum/lore/location("the Iserlohn platform in Saint Columbia", list(ATC_INDU, ATC_FREIGHT, ATC_TRANS)),
+ new /datum/lore/location("a dreadnought in Saint Columbia", list(ATC_MED, ATC_INDU, ATC_TRANS, ATC_FREIGHT)),
+ new /datum/lore/location("a battlecruiser in Saint Columbia", list(ATC_MED, ATC_INDU, ATC_TRANS, ATC_FREIGHT)),
+ new /datum/lore/location("a Fleet construction site in Saint Columbia", list(ATC_MED, ATC_INDU, ATC_TRANS, ATC_FREIGHT)),
+ new /datum/lore/location("a demonstration in Saint Columbia", list(ATC_DEF, ATC_MED)), // woof
+ new /datum/lore/location("Barrueco habitation dome, Saint Columbia", list(ATC_TYPICAL)), //ancient, ancient ic-news lore
+ new /datum/lore/location("a classified location in Saint Columbia", list(ATC_TYPICAL)),
+ new /datum/lore/location("a caravan in Saint Columbia", list(ATC_TYPICAL)),
+ new /datum/lore/location("Almach War wreckage in Saint Columbia", list(ATC_SALVAGE))
+ )
+
+/datum/lore/system/raphael
+ name = "Raphael"
+ desc = "Positronic voter farms in the Crypt."
+ locations = list( //discord indicates they had some Troubles during the incursion but IDK anything fun to give them as a result
+ new /datum/lore/location("Yod habitation complex, Raphael", list(ATC_ALL_CIV)),
+ new /datum/lore/location("He habitation complex, Raphael", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Waw habitation complex, Raphael", list(ATC_ALL_CIV))
+ )
+
+/datum/lore/system/love
+ name = "Love"
+ desc = "Government is basically owned by a bunch of triads. Wellfare's really good though. Home to the ZMR."
+ planets = list("the planet") // ...ok. so. wiki indicates Love has a habitable world. there is no sense at all what it is called. this will generate locations in the form of "a dome on the planet in Love", which is bizzarely circumspect but basically fine. the alternative is giving them only space sites until someone names the planet.
+ locations = list(
+ new /datum/lore/location("a 'facility' in Love", list(ATC_ALL_CIV)), //i find this funny but you can nyx it if you want
+ new /datum/lore/location("a pharmacy in Love", list(ATC_ALL_CIV)), // this is probably the more serious version of the above
+ new /datum/lore/location("an independent mecenary outpost in Love", list(ATC_TYPICAL)),
+ new /datum/lore/location("Colony Daring in Love", list(ATC_TYPICAL, ATC_DIPLO))
+ )
+
+/datum/lore/system/terminus
+ name = "Terminus Station"
+ desc = "A deep space outpost. Major academic institution, inventor of the Terminus language, kind of racist." //super super super needs an Incursion pass lol
+ autogenerate_destinations = FALSE //its just one really big station
+ locations = list(
+ new /datum/lore/location("Terminus Station", list(ATC_ALL_CIV)),
+ new /datum/lore/location("the Stream Terminus", list(ATC_SCI)),
+ new /datum/lore/location("a caravan gathering around Terminus Station", list(ATC_TYPICAL, ATC_SCI)),
+ new /datum/lore/location("an academy on Terminus Station", list(ATC_SCI)),
+ new /datum/lore/location("an observatory on Terminus Station", list(ATC_SCI))
+ )
+
+//these are the minimally-detailed not-on-the-wiki systems i could find enough discord / code / timeline lore on to be worth including
+//might comment these out if you want though I think Gavel has enough stuff to be worth including (and also like written up)
+/datum/lore/system/gavel
+ name = "Gavel"
+ desc = "Formerly an independent seccessionist nation during the Golden Hour, Gavel is now known mostly for being invaded and kind of wrecked by Almachi forces during the Almach War. Ironic. Part of the GCAB with Vir and Oasis."
+ planets = list("New Xanadu")
+ locations = list(
+ new /datum/lore/location("the NLS Aquarius in Gavel", list(ATC_TYPICAL)),
+ new /datum/lore/location("a Grayson Manufactories plant in Gavel", list(ATC_TYPICAL)),
+ new /datum/lore/location("an Almach War derelict in Gavel", list(ATC_SALVAGE)),
+ new /datum/lore/location("the old Boiling Point stronghold in Gavel", list(ATC_SCI, ATC_LUX, ATC_DEF)),
+ new /datum/lore/location("Requiem in Gavel", list(ATC_SCI, ATC_LUX)),
+ new /datum/lore/location("a Fleet base in Gavel", list(ATC_TRANS, ATC_INDU, ATC_FREIGHT)),
+ new /datum/lore/location("a Golden Crescent Alliance base in Gavel", list(ATC_TYPICAL)),
+ new /datum/lore/location("Colony Itinerant in Gavel", list(ATC_MED, ATC_TRANS, ATC_FREIGHT, ATC_INDU, ATC_DIPLO))
+ )
+/datum/lore/system/new_ohio
+ name = "New Ohio"
+ desc = "Not even being well-placed as the only Sagitarius Heights system to have avoided becoming part of the Five Arrows could have prevented this system from succumbing to the curse of its namesake and becoming the most profoundly boring place anyone has ever seen."
+ locations = list(
+ new /datum/lore/location("Colony Intrepid in New Ohio", list(ATC_MED, ATC_TRANS, ATC_FREIGHT, ATC_INDU, ATC_DIPLO)),
+ new /datum/lore/location("Toledo in New Ohio", list(ATC_ALL_CIV)),
+ new /datum/lore/location("a Fleet base in New Ohio", list(ATC_TRANS, ATC_INDU, ATC_FREIGHT))
+ )
+
+/datum/lore/system/abels_rest
+ name = "Abel's Rest"
+ desc = "The Hegemony invaded and occupied this system in 2508 and somehow has resisted all human efforts to detail it further"
+ locations = list(
+ new /datum/lore/location("a Fleet base in Abel's Rest", list(ATC_TRANS, ATC_INDU, ATC_FREIGHT)),
+ new /datum/lore/location("an unathi exclave in Abel's Rest", list(ATC_TYPICAL, ATC_DIPLO)),
+ new /datum/lore/location("a First Contact derelict in Abel's Rest", list(ATC_SALVAGE))
+ )
+
+/datum/lore/system/zhu_que
+ name = "Zhu Que"
+ desc = "It's in the Inner Bowl and, likewise, has resisted all efforts to detail it further."
+ planets = list("Jade")
+ locations = list(
+ new /datum/lore/location("Urgia in Zhu Que", list(ATC_ALL_CIV)), //ancient notes
+ new /datum/lore/location("a Ward-Takahashi plant in Zhu Que", list(ATC_TYPICAL))
+ )
+
+/datum/lore/system/zhu_que/New()
+ planetary_destinations -= "a dome" //Jade is fully habitable
+ ..()
+
+//Almach Protectorate
+/datum/lore/system/relan
+ name = "Relan"
+ desc = "The first colonized system in the Almach Rim and defacto leader of the floudering Protectorate. Politically divided between Taron, the system's main planet, and Relan, its spacebound population"
+ planets = list("Taron")
+ locations = list(
+ new /datum/lore/location("Maruya in Relan", list(ATC_INDU)),
+ new /datum/lore/location("New Dayton on Taron, Relan", list(ATC_ALL_CIV)),
+ new /datum/lore/location("New Garissa on Taron, Relan", list(ATC_TYPICAL)),
+ new /datum/lore/location("Perez Rest on Taron, Relan", list(ATC_TYPICAL)),
+ new /datum/lore/location("Parker in Relan", list(ATC_TYPICAL)),
+ new /datum/lore/location("Abhayaranya in Relan", list(ATC_TYPICAL)),
+ new /datum/lore/location("Carter Interstellar Spaceport, Relan", list(ATC_ALL_CIV, ATC_DIPLO)),
+ new /datum/lore/location("a pirate base in Relan", list(ATC_DEF)),
+ new /datum/lore/location("a Protectorate laboratory in Relan", list(ATC_SCI)),
+ new /datum/lore/location("a Kaleidoscope Cosmetics office in Relan", list(ATC_TRANS, ATC_SCI)),
+ new /datum/lore/location("an Almach War derelict in Relan", list(ATC_SALVAGE))
+ )
+
+/datum/lore/system/relan/New()
+ locations += list(
+ new /datum/lore/location("[pick("Fu Xi", "Nuwa", "Shennong")], Xia subsystem, Relan", list(ATC_TYPICAL)), //identically undetailed sattelites get compressed
+ new /datum/lore/location("[pick("Ubaid", "Badari", "Harappan", "Olmec", "Caral")], Zegev subsystem, Relan", list(ATC_TYPICAL))
+ )
+ ..()
+
+/datum/lore/system/vounna
+ name = "Vounna"
+ desc = "Home system of the Prometheans and member of the Protectorate."
+ planets = list("Aetolus")
+ locations = list(
+ new /datum/lore/location("the Spear of Agrafa in Vounna", list(ATC_TYPICAL)),
+ new /datum/lore/location("the Prometheus in Vounna", list(ATC_TYPICAL, ATC_DIPLO)),
+ new /datum/lore/location("the remains of the SGWP Delilah in Vounna", list(ATC_SALVAGE)),
+ new /datum/lore/location("the Sisyphus in Vounna", list(ATC_TYPICAL))
+ )
+
+/datum/lore/system/exalts_light
+ name = "Exalt's Light"
+ desc = "But everyone just calls it after its planet. A theocratic technocratic autocracy run by Angessa Martei, it lead the push for Almachi independence and has remained recalcitrant ever since."
+ planets = list("Angessa's Pearl")
+ locations = list(
+ new /datum/lore/location("Skylight on Angessa's Pearl", list(ATC_ALL_CIV, ATC_DIPLO)),
+ new /datum/lore/location("Melt on Angessa's Pearl", list(ATC_TRANS, ATC_FREIGHT)), // melt doesn't get emergency responders
+ new /datum/lore/location("Angessa's Grave on Angessa's Pearl", list(ATC_TYPICAL, ATC_SCI, ATC_DIPLO)),
+ new /datum/lore/location("Tsunami on Angessa's Pearl", list(ATC_ALL_CIV, ATC_DIPLO)),
+ new /datum/lore/location("a demonstration on Angessa's Pearl", list(ATC_DEF, ATC_MED)),
+ new /datum/lore/location("a Far Kingdoms wreck in Exalt's Light", list(ATC_SALVAGE, ATC_SCI))
+ )
+
+//Five Arrows
+//might need lore ppl to weigh in here
+
+/datum/lore/system/new_seoul
+ name = "New Seoul"
+ desc = "The capital system of Five Arrows. Historically wealthy."
+ locations = list(
+ new /datum/lore/location("the Five Arrows capital in New Seoul", list(ATC_ALL_CIV, ATC_DIPLO)),
+ new /datum/lore/location("NSAIST main campus in New Seoul", list(ATC_SCI))
+ )
+
+/datum/lore/system/sidhe
+ name = "Sidhe"
+ desc = "A university and mining town in the Heights, decimated by the Incursion and subsequent Ue'Katish invasions. An ongoing refugee crisis."
+ planets = list("Abhartach")
+ locations = list(
+ new /datum/lore/location("Daoine Institute in Sidhe", list(ATC_TYPICAL, ATC_SCI)),
+ new /datum/lore/location("Sidhe Alsace Fleet Base", list(ATC_TYPICAL)), //it's not really a permenant installation so def and med missions there make sense
+ new /datum/lore/location("Qux'Xinu on Abhartach, Sidhe", list(ATC_ALL_CIV, ATC_DIPLO)),
+ new /datum/lore/location("Colony Impossible in Sidhe", list(ATC_TYPICAL)),
+ new /datum/lore/location("the remains of the Colony Possible in Sidhe", list(ATC_SALVAGE)),
+ new /datum/lore/location("the School of Tachyon Physics in Sidhe", list(ATC_DEF, ATC_SCI)),
+ new /datum/lore/location("the XIS Hawthorn in Sidhe", list(ATC_FREIGHT, ATC_TRANS, ATC_DEF)),
+ new /datum/lore/location("Xe'xi in Sidhe", list(ATC_TYPICAL))
+ )
+
+/datum/lore/system/kauqxum
+ name = "Kauq'xum"
+ desc = "The Skrellian monarchies closest to Sol. Joined the Five Arrows for mutual defense."
+
+/datum/lore/system/mahimahi
+ name = "Mahi-Mahi"
+ desc = "Primarily an organic agricultural world, the planet is divided into two distinct economic and cultural sectors."
+ planets = list("the planet") //its the same dumb thing as Love
+
+//human independents
+/datum/lore/system/natuna
+ name = "Natuna Barisal" //we have unicode support but i think radio might still shit itself
+ desc = "Seceeded from SolGov over all the racism and casteism. Now it's home to pirates and also got invaded by the Hegemony"
+ planets = list("Natuna Barisal c") //its this or 'the planet' or 'natuna barisal, natuna barisal'-- the planet and the system share a name
+ locations = list(
+ new /datum/lore/location("Dhana in Natuna Barisal", list(ATC_TYPICAL)),
+ new /datum/lore/location("a human settlement on Natuna Barisal c", list(ATC_TYPICAL, ATC_DIPLO)),
+ new /datum/lore/location("an Ue-Katish settlement on Natuna Barisal c", list(ATC_TYPICAL, ATC_DIPLO)),
+ new /datum/lore/location("an abandoned Hegemony outpost on Natuna Barisal c", list(ATC_SALVAGE, ATC_SCI)),
+ new /datum/lore/location("a Ue-Katish trade ship in Natuna Barisal", list(ATC_TYPICAL, ATC_DIPLO)), //"trade ship"
+ new /datum/lore/location("an orbital dockyard in Natuna Barisal", list(ATC_TYPICAL)), // "dockyard"
+ new /datum/lore/location("a survey site on Natuna Barisal c", list(ATC_SCI))
+ )
+/datum/lore/system/natuna/New()
+ planetary_destinations -= list("a colony", "a city")
+ planetary_destinations += "a settlement" //this is the language used on the natuna page and i think that makes for fun regional flavor
+ ..()
+
+
+/datum/lore/system/phact
+ name = "Phact"
+ desc = "They built a replica of Edo Castle in a dome. That's really all there is to say on the matter."
+ planets = list("New Kyoto", "Hokkaido", "Ryukyu")
+ locations = list(
+ new /datum/lore/location("the Imperial Palace in New Kyoto, Phact", list(ATC_LUX, ATC_DIPLO))
+ )
+
+/datum/lore/system/casinis_reach
+ name = "Casini's Reach"
+ desc = "Anarchists who have managed to frame-perfect parry every terrible thing to have happened to humanity in the last 100 years."
+ planets = list("Santiago, Pontes subsystem", "Cotopaxi, Pontes subsystem") //theyre not planets but i think this will work fine
+ locations = list(
+ new /datum/lore/location("Rey Pedro, Pontes subsystem, Casini's Reach", list(ATC_TYPICAL)),
+ new /datum/lore/location("Santa Maria, Pontes subystem, Casini's Reach", list(ATC_TYPICAL)),
+ new /datum/lore/location("Aconcagua, Pontes subsystem, Casini's Reach", list(ATC_TYPICAL)),
+ new /datum/lore/location("Campinas, Pontes subsystem, Casini's Reach", list(ATC_TYPICAL)),
+ new /datum/lore/location("a commune in the Diego Belt, Casini's Reach", list(ATC_TYPICAL)),
+ new /datum/lore/location("a large commune on Santiago, Pontes subsystem, Casini's Reach", list(ATC_ALL_CIV, ATC_DIPLO)), //kinda kludgy but that lets ppl run diplomatic missions here
+ new /datum/lore/location("an abandoned mineshaft on Santa Maria, Pontes subsystem, Casini's Reach", list(ATC_MED, ATC_SALVAGE)),
+ new /datum/lore/location("the Unbound colony on Santa Maria, Pontes subsystem, Casini's Reach", list(ATC_TYPICAL))
+ )
+
+/datum/lore/system/casinis_reach/New()
+ planetary_destinations -= list("a colony", "a city")
+ planetary_destinations += "a commune" //likewise, this is the language used on the casini's reach page
+ ..()
+
+/datum/lore/system/eutopia
+ name = "Eutopia" //the system is technically called 'Smith' but like. nobody calls it that.
+ desc = "It's Eutopia baybeee! Slavery is legal! Ancaps will use their power transmission infrastructure to shoot you if you try to violate the NAP by taking them away! Casinos!"
+ locations = list(
+ new /datum/lore/location("an automated mine on Friedman, Eutopia", list(ATC_FREIGHT, ATC_DEF, ATC_INDU)),
+ new /datum/lore/location("a mining complex on Rand, Eutopia", list(ATC_TYPICAL)),
+ new /datum/lore/location("a farm on Malthus, Ricardo subsystem, Eutopia", list(ATC_TYPICAL)),
+ new /datum/lore/location("a plastics plant on Malthus, Ricardo subsystem, Eutopia", list(ATC_TYPICAL)),
+ new /datum/lore/location("The Halo, Eutopia", list(ATC_INDU, ATC_FREIGHT)),
+ new /datum/lore/location("Kroptkin, Eutopia", list(ATC_TYPICAL, ATC_LUX)), //rich people are weird
+ new /datum/lore/location("a casino in Eutopia", list(ATC_TYPICAL, ATC_LUX)),
+ new /datum/lore/location("a resort in Eutopia", list(ATC_TYPICAL, ATC_LUX)),
+ new /datum/lore/location("a five-star restaurant in Eutopia", list(ATC_TYPICAL)),
+ new /datum/lore/location("a financial institute in Eutopia", list(ATC_TYPICAL)),
+ new /datum/lore/location("an auction in Eutopia", list(ATC_TRANS, ATC_MED, ATC_DEF)) //eat the rich
+ )
+
+/datum/lore/system/neon_light
+ name = "Neon Light"
+ desc = "An independent black-market trade ship run by a series of matriarchies. Used to be in Almach. The person responsible for that decision is now a corpse!"
+ autogenerate_destinations = FALSE // it's just one ship
+ locations = list(
+ new /datum/lore/location("the Neon Light", list(ATC_TYPICAL, ATC_LUX, ATC_DIPLO)) //it's just one ship! too much grandularity would be weird here!
+ )
+
+// nobody should be going to shelf or vystholm so we're skipping them for now
+
+//Pearlshield Coalition
+//Will probably want more details from the Catlord
+//and lorestaff general since theyre like half human now
+
+/datum/lore/system/rarkajar
+ name = "Rarkajar"
+ desc = "The home system of the Tajaran race."
+ planets = list("Meralar")
+ locations = list(
+ new /datum/lore/location("a helium-3 extractor on Keoalar, Rarkajar", list(ATC_TYPICAL)),
+ new /datum/lore/location("a geological survey site on Aipira, Rarkajar", list(ATC_TYPICAL, ATC_SCI)),
+ new /datum/lore/location("the SolGov embassy on Meralar, Rarkajar", list(ATC_DIPLO, ATC_TRANS)),
+ new /datum/lore/location("Nalyar on Meralar, Rarkajar", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Jormitar on Meralar, Rarkajar", list(ATC_ALL_CIV)),
+ new /datum/lore/location("Mi'dynh Al'Manq on Meralar, Rarkajar", list(ATC_ALL_CIV))
+ )
+
+/datum/lore/system/rarkajar/New()
+ planetary_destinations -= list("a dome", "a colony") //its the core it doesn't have colonies
+ planetary_destinations += "a town"
+ ..()
+
+/datum/lore/system/arrathiir
+ name = "Arrathiir"
+ desc = "The first exo-Rarkajaran Tajaran colony"
+ planets = list("Alar-Selna")
+
+/datum/lore/system/mesomori
+ name = "Mesomori"
+ desc = "The second exo-Rarkajaran Tajaran colony. Technically not even part of the PCA but like. Come on."
+
+//humans aren't generally allowed to go to uueoa-esa or Vengeful Father so we're skipping those
+//Skrell stuff
+
+/datum/lore/system/qerrvalis
+ name = "Qerr'Valis"
+ desc = "The home system of the Skrell, and some less important aliens."
+ autogenerate_destinations = FALSE //qerrvalis is a truly stupidly long distance away so a random medical mission to a minor colony isn't going to happen
+ locations = list( //teshari who?
+ new /datum/lore/location("a historical site in Qarr'kloa, Qerr'balak, Qerr'Valis", list(ATC_LUX, ATC_TRANS)),
+ new /datum/lore/location("a historical site in Mi'qoxi, Qerr'balak, Qerr'Valis", list(ATC_LUX, ATC_TRANS)),
+ new /datum/lore/location("a historical site in Kal'lo, Qerr'balak, Qerr'Valis", list(ATC_LUX, ATC_TRANS)),
+ new /datum/lore/location("an archeological dig in Qarr'kloa, Qerr'balak, Qerr'Valis", list(ATC_TRANS, ATC_SCI)),
+ new /datum/lore/location("a bulk phoron distibutor in Mo'glar, Qerr'balak, Qerr'Valis", list(ATC_FREIGHT)),
+ new /datum/lore/location("the Academy on Gli'morr, Qerr'balak, Qerr'Valis", list(ATC_SCI, ATC_TRANS)),
+ new /datum/lore/location("a SolGov embassy on Qerr'balak, Qerr'Valis", list(ATC_DIPLO))
+ )
+
+//skipping Ue-Orsi unless I hear that they have returned to being a place you could go
+
+//weird shit
+/datum/lore/system/isavaus_gamble
+ name = "Isavau's Gamble" // pleas do not give this system to anyone who does not have very serious reasons to be here
+ desc = "Destroyed completely by the Skathari Incursion. Was previously a totally failed state consisting of one large spaceport, which was very very briefly part of a backroads route from Almach to Sol."
+ autogenerate_destinations = FALSE //its just wreckage
+ locations = list(
+ new /datum/lore/location("an Incursion site in Isavau's Gamble", list(ATC_DEF, ATC_MED)),
+ new /datum/lore/location("Isavau International Spaceport, Isavau's Gamble", list(ATC_SALVAGE)),
+ new /datum/lore/location("the Brazen Bull escort fleet in Isavau's Gamble", list(ATC_SALVAGE)), //wiki indicates salvage missions here are common but illegal so they PROBABLY wouldn't be declared on atc. i think its more interesting to do this and imagine tracon either doesn't know, doesn't care, or has been presented legitimate-seeming paperwork
+ new /datum/lore/location("the wreckage of the XIV Sri Chamarajendra in Isavau's Gamble", list(ATC_SALVAGE)),
+ new /datum/lore/location("the last known position of the IIV Reimarus in Isavau's Gamble", list(ATC_SALVAGE)),
+ new /datum/lore/location("debris in Isavau's Gamble", list(ATC_SALVAGE))
+ )
+
+/datum/lore/system/whythe
+ name = "Whythe" //SUPER dont give this system to anyone who doesn't have reasons to be here
+ desc = "Atom bombs and dying stars. Whythe was home to the Wythe Superweapon, the firing of which caused the Far Kingdoms invasion and the Skathari Incursion. Woops. Currently decimated by the Incursion and considered uninhabitable."
+ autogenerate_destinations = FALSE
+ locations = list(
+ new /datum/lore/location("a skathari incursion in Whythe", list(ATC_DEF)),
+ new /datum/lore/location("the remains of Vigilance Station in Whythe", list(ATC_SALVAGE, ATC_SCI)),
+ new /datum/lore/location("a classified site in Whythe", list(ATC_DEF, ATC_SALVAGE, ATC_SCI))
+ )
+
+/datum/lore/system/new_cairo
+ name = "New Cairo"
+ desc = "Home to the only known pre-FTL species in contact with the broader galactic community."
+ autogenerate_destinations = FALSE
+ locations = list(
+ new /datum/lore/location("the Embassy to the Khepri People in New Cairo orbit", list(ATC_DIPLO)) //there is nothing to do here but talk to the bugs
+ )
\ No newline at end of file
diff --git a/polaris.dme b/polaris.dme
index 438f2a5c5e..4ffd5c89c7 100644
--- a/polaris.dme
+++ b/polaris.dme
@@ -29,6 +29,7 @@
#include "code\__defines\admin.dm"
#include "code\__defines\ai.dm"
#include "code\__defines\appearance.dm"
+#include "code\__defines\atc.dm"
#include "code\__defines\atmos.dm"
#include "code\__defines\callbacks.dm"
#include "code\__defines\chemistry.dm"
@@ -1571,8 +1572,11 @@
#include "code\modules\blob2\overmind\types\synchronous_mesh.dm"
#include "code\modules\blob2\overmind\types\volatile_alluvium.dm"
#include "code\modules\busy_space\air_traffic.dm"
+#include "code\modules\busy_space\locations.dm"
#include "code\modules\busy_space\loremaster.dm"
+#include "code\modules\busy_space\missions.dm"
#include "code\modules\busy_space\organizations.dm"
+#include "code\modules\busy_space\systems.dm"
#include "code\modules\catalogue\atoms.dm"
#include "code\modules\catalogue\catalogue_data.dm"
#include "code\modules\catalogue\cataloguer.dm"