initial commit may or may not work

This commit is contained in:
elgeonmb
2023-02-15 23:27:30 -08:00
parent e00b208c90
commit 45ccebb581
6 changed files with 112 additions and 8 deletions

11
code/__defines/atc.dm Normal file
View File

@@ -0,0 +1,11 @@
#define ATC_MED "Medical"
#define ATC_TRANS "Transport"
#define ATC_FREIGHT "Freight"
#define ATC_DEF "Defense"
#define ATC_INDU "Industrial"
#define ATC_SCI "Scientific"
#define ATC_TYPICAL list(ATC_MED, ATC_TRANS, ATC_FREIGHT, ATC_DEF, ATC_INDU, ATC_SCI)
#define ATC_DIPLO "Diplomacy"
#define ATC_LUX "Luxury"
#define ATC_ALL list(ATC_MED, ATC_TRANS, ATC_FREIGHT, ATC_DEF, ATC_INDU, ATC_SCI, ATC_DIPLO, ATC_LUX)

View File

@@ -90,7 +90,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.shady) //Chance for them to say yes vs no
var/request = pick(requests)
var/callname = pick(alt_atc_names)
@@ -117,6 +117,8 @@ var/global/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
full_request = "[callname], this is [combined_name] on a [mission] [pick(mission_noun)] to [destname], [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(10) || source.motto == "With Major Bill's, you won't pay major bills!") //ten percent chance of postpending the motto, unless it's MBT, in which case it will literally always do that
full_closure += " " + source.motto
//Ship sends request to ATC
msg(full_request,"[prefix] [shipname]")

View File

@@ -0,0 +1,7 @@
/datum/lore/location
var/desc = ""
var/types = list()
/datum/lore/location/New(a,b)
desc = a
types = b

View File

@@ -7,7 +7,8 @@
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/motto = "" // A motto/jingle/whatever, if they have one.
var/shady = 10 // The odds of them being denied a flight route. mostly a function of their reputation though unfamiliarity with local traffic rules is also a factor
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.
@@ -469,18 +470,19 @@
)
/datum/lore/organization/tsc/morpheus
name = "Morpheus Cyberkinetics"
short_name = "Morpheus"
name = "Morpheus Cyberkinetics - Sol Branch"
short_name = "Morpheus Sol"
acronym = "MC"
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"
motto = ""
headquarters = "Sophia, El"
motto = "#6 Get bent, meatbags."
ship_prefixes = list("MTV" = "freight")
// Culture names, because Anewbe told me so.

View File

@@ -0,0 +1,79 @@
/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/list/planets = list() //planetary destinations will automatically pick an inhabited terrestrial planet to be on. no planet == no planetary destinations. major planets only
var/list/space_destinations = list("a dockyard", "a station", "a vessel", "a waystation", "a satellite", "a spaceport", "an anomaly", "a habitat", "an outpost", "a facility") // should be just fine for most systems, some might want individual entries culled from the autogen
var/list/planetary_destinations = list("a colony", "a dome", "an outpost", "a city", "a facility") //likewise
var/list/locations = list() // locations within the system. list of strings for now, might involve fancier logic later
/datum/lore/system/New()
..()
if(autogenerate_destinations)
var/i = 3
while(i) // 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")) //clunky but w/e
mission = ATC_TYPICAL
else
mission = ATC_ALL
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 dockyard", "a station", "a vessel", "a spaceport", "an outpost", "a facility"))
mission = ATC_TYPICAL
else
mission = ATC_ALL
locations += new /datum/lore/location((initial + " in " + name), mission)
i--
/datum/lore/system/ganesha
name = "Ganesha"
desc = "Can you believe that shit has been on the timeline since like 2016 and its never even made it onto the map. the south dakota of space."
planets = list("It Probably Has One??")
/*
/datum/lore/system/vir
name = "Vir"
desc = "Vir's government stabilized comparatively recently, and as a result has a smaller population \
than most other garden worlds. Its position along the Almach Stream and centralized between the Core Worlds, \
the Sagittarius Heights, and the Golden Crescent made it a veritable trade hub for many years prior to the \
Tachyon Downtick, attracting the interest of a number of Trans-Stellar Corporations, most prominently \
Nanotrasen. Traditionally considered a fairly \"safe\" system, its immense volume of trade has always attracted \
a number of pirates, and the high concentration of xenoarchaeological artifacts made it a focal point for the \
devastating Skathari Incursion, which has rendered some regions of the system particularly dangerous to this day, \
including some of Sif's surface, most notably the Anomalous Region. Vir is the capital system of the Golden Crescent Alliance Bloc."
history = ""
autogenerate_destination_names = FALSE // Vir is detailed enough to not need autogeneration
planets.Add("Sif") //not necessary but nice for parsimony
locations = 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 in Karan orbit",
"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")
*/