From 23f6bcb59789681374491be18c53ccf062e3df81 Mon Sep 17 00:00:00 2001 From: elgeonmb Date: Mon, 20 Feb 2023 23:26:52 -0800 Subject: [PATCH] im finally fucking done --- code/modules/busy_space/air_traffic.dm | 2 +- code/modules/busy_space/missions.dm | 14 +- code/modules/busy_space/organizations.dm | 609 +++++++++++++++++------ code/modules/busy_space/systems.dm | 13 +- 4 files changed, 467 insertions(+), 171 deletions(-) diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm index 89f4f23112..3a9ae4f879 100644 --- a/code/modules/busy_space/air_traffic.dm +++ b/code/modules/busy_space/air_traffic.dm @@ -113,7 +113,7 @@ var/global/datum/lore/atc_controller/atc = new/datum/lore/atc_controller 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)) + if(source.motto && prob(source.annoying) && yes) full_closure += " " + source.motto //Ship sends request to ATC diff --git a/code/modules/busy_space/missions.dm b/code/modules/busy_space/missions.dm index 680751c8b9..cf1ade7038 100644 --- a/code/modules/busy_space/missions.dm +++ b/code/modules/busy_space/missions.dm @@ -15,15 +15,15 @@ //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", "pathogen containment") + 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", "just-in-time delivery") + 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", "energy relay") + mission_strings = list("freight", "hauling", "bulk transport", "materials delivery") mission_type = ATC_FREIGHT /datum/lore/mission/prebuilt/defense @@ -50,5 +50,13 @@ 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 327b9b3708..8f1f3fc6b4 100644 --- a/code/modules/busy_space/organizations.dm +++ b/code/modules/busy_space/organizations.dm @@ -9,17 +9,28 @@ 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/annoying = 100 // 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("flight","mission","route") // used for random mission generation var/current_ship = "" // the most recent ship from this org to have talked on the tracon - var/list/destination_names = list() +// var/list/destination_names = list() var/autogenerate_destination_names var/autogenerate_destinations - - 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/missions = list( + new /datum/lore/mission/prebuilt/medical("IMV"), + 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/defense("IDV"), + new /datum/lore/mission/prebuilt/luxury("ITV"), + new /datum/lore/mission/prebuilt/diplomatic("IDV"), + new /datum/lore/mission/prebuilt/scientific("ISV"), + new /datum/lore/mission/prebuilt/salvage("IIV"), + ) +*/ 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", @@ -171,48 +182,32 @@ ) /datum/lore/organization/proc/generate_mission() - current_ship = "ITV Testing" // 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 - to_world("destination selected") //shuffle missions = shuffle(missions) destination_system.locations = shuffle(destination_system.locations) - to_world(jointext(destination_system.locations, "")) - to_world("shuffled") //init other variables var/destination_mission_types = list() var/possible_mission_types = list() - to_world("vars initialized") //find what missions we can run for(var/datum/lore/mission/x in missions) possible_mission_types |= x.mission_type - to_world("source mission types populated:") - to_world(jointext(possible_mission_types, "")) - //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 - - to_world("destination mission types populated:") - to_world(jointext(destination_mission_types, "")) - // only find missions in the system we can run possible_mission_types &= destination_mission_types - to_world("union found") - to_world(jointext(possible_mission_types, "")) - //sanity checking if(!possible_mission_types) - to_world("sanity check failed") return "ERROR" //change to fail silently after testing //select a mission we can run @@ -220,27 +215,17 @@ for(var/datum/lore/mission/x in missions) if(x.mission_type in possible_mission_types) selected_mission = x - to_world("mission selected") - to_world(selected_mission.mission_type) break - else - to_world("mission failed selection") //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 - to_world("destination selected") - to_world(selected_location.desc) break - else - world << "destination selection failed" //set our ship name for consistancy on the tracon current_ship = "[selected_mission.prefix] [pick(ship_names)]" - to_world("ship name selected") - world.log << current_ship //finally return our answer return "[current_ship] on a [pick(selected_mission.mission_strings)] [pick(mission_noun)] to [selected_location.desc]" @@ -268,17 +253,53 @@ work = "research giant" headquarters = "Luna, Sol" motto = "" + legit = 95 //they own the local airspace - ship_prefixes = list("NSV" = "exploration", "NTV" = "hauling", "NDV" = "patrol", "NRV" = "emergency response", "NDV" = "asset protection") - missions = list( // they get almost every mission type because they're like the protagonists + 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/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, + ) + + //Scientist naming scheme ship_names = list( "Bardeen", @@ -324,25 +345,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" @@ -357,7 +359,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("HIV"),//extremely unfortunate prefix. can probably fudge it as HFV or HLV if this is too unpleasant + 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", @@ -402,14 +434,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" @@ -426,9 +450,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", @@ -453,11 +505,6 @@ "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" @@ -472,10 +519,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" @@ -491,8 +560,48 @@ 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", @@ -523,9 +632,6 @@ "Milky Way", "Trojan" ) - destination_names = list( - "A manufacturing facility in the Almach Protectorate" - ) /datum/lore/organization/tsc/bishop name = "Bishop Cybernetics" @@ -542,15 +648,31 @@ 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 - Sol Branch" short_name = "Morpheus Sol" - acronym = "MC" + acronym = "MC-S" desc = "The only large corporation run by positronic intelligences, Morpheus caters almost exclusively to their sensibilities \ 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 \ @@ -559,11 +681,37 @@ Shelfican counterpart, though both are notionally headed by the same board of directors." history = "" work = "cybernetics manufacturer" - headquarters = "Sophia, El" - motto = "#6 Get bent, meatbags." + 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", @@ -663,10 +811,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 @@ -681,8 +826,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" @@ -697,8 +874,45 @@ 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" @@ -708,9 +922,48 @@ work = "trade and transit" headquarters = "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" @@ -720,9 +973,23 @@ work = "trade and transit" headquarters = "N/A" motto = "" - autogenerate_destination_names = FALSE + 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", @@ -754,29 +1021,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 @@ -794,9 +1038,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", @@ -825,17 +1081,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" @@ -856,16 +1101,64 @@ 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 = 3, //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 +// /datum/lore/system/mahimahi = 5, //uncomment these if theyre ever like, detailed enough to have a specific named embassy +// /datum/lore/system/kauqxum = 5, + ) +//TODO add 5 Arrows, Protectorate, Pearlshield +//maybe some other flavorful government agencies like the EIO or the GSA or SOFI // Military @@ -879,7 +1172,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", @@ -908,25 +1212,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 + ) \ No newline at end of file diff --git a/code/modules/busy_space/systems.dm b/code/modules/busy_space/systems.dm index 99ef641f05..422a9d83c5 100644 --- a/code/modules/busy_space/systems.dm +++ b/code/modules/busy_space/systems.dm @@ -17,7 +17,7 @@ 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")) //commune isn't in the default list but it's used in casini's reach and natuna + 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) @@ -49,6 +49,8 @@ //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" @@ -445,7 +447,7 @@ //human independents /datum/lore/system/natuna - name = "Natuna Barisal" + 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( @@ -525,11 +527,14 @@ /datum/lore/system/rarkajar name = "Rarkajar" desc = "The home system of the Tajaran race." - planets = list("Merelar") + 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 Merelar, Rarkajar", list(ATC_DIPLO, ATC_TRANS)), + 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()