Merge pull request #2327 from LetterN/lore-optimization

Optimizes lorecode
This commit is contained in:
Zandario
2020-09-20 23:44:44 -05:00
committed by GitHub
11 changed files with 414 additions and 755 deletions

View File

@@ -3,8 +3,8 @@
//Creates a global initializer with a given InitValue expression, do not use //Creates a global initializer with a given InitValue expression, do not use
#define GLOBAL_MANAGED(X, InitValue)\ #define GLOBAL_MANAGED(X, InitValue)\
/datum/controller/global_vars/proc/InitGlobal##X(){\ /datum/controller/global_vars/proc/InitGlobal##X(){\
##X = ##InitValue;\ ##X = ##InitValue;\
gvars_datum_init_order += #X;\ gvars_datum_init_order += #X;\
} }
//Creates an empty global initializer, do not use //Creates an empty global initializer, do not use
#define GLOBAL_UNMANAGED(X) /datum/controller/global_vars/proc/InitGlobal##X() { return; } #define GLOBAL_UNMANAGED(X) /datum/controller/global_vars/proc/InitGlobal##X() { return; }
@@ -13,8 +13,8 @@
#ifndef TESTING #ifndef TESTING
#define GLOBAL_PROTECT(X)\ #define GLOBAL_PROTECT(X)\
/datum/controller/global_vars/InitGlobal##X(){\ /datum/controller/global_vars/InitGlobal##X(){\
..();\ ..();\
gvars_datum_protected_varlist[#X] = TRUE;\ gvars_datum_protected_varlist[#X] = TRUE;\
} }
#else #else
#define GLOBAL_PROTECT(X) #define GLOBAL_PROTECT(X)
@@ -41,6 +41,12 @@
//Create a list global that is initialized as an empty list //Create a list global that is initialized as an empty list
#define GLOBAL_LIST_EMPTY(X) GLOBAL_LIST_INIT(X, list()) #define GLOBAL_LIST_EMPTY(X) GLOBAL_LIST_INIT(X, list())
// Create a typed list global with an initializer expression
#define GLOBAL_LIST_INIT_TYPED(X, Typepath, InitValue) GLOBAL_RAW(/list##Typepath/X); GLOBAL_MANAGED(X, InitValue)
// Create a typed list global that is initialized as an empty list
#define GLOBAL_LIST_EMPTY_TYPED(X, Typepath) GLOBAL_LIST_INIT_TYPED(X, Typepath, list())
//Create a typed global with an initializer expression //Create a typed global with an initializer expression
#define GLOBAL_DATUM_INIT(X, Typepath, InitValue) GLOBAL_RAW(Typepath/##X); GLOBAL_MANAGED(X, InitValue) #define GLOBAL_DATUM_INIT(X, Typepath, InitValue) GLOBAL_RAW(Typepath/##X); GLOBAL_MANAGED(X, InitValue)

View File

@@ -95,7 +95,7 @@ SUBSYSTEM_DEF(emergencyshuttle)
if(istype(A, /area/hallway)) if(istype(A, /area/hallway))
A.readyalert() A.readyalert()
atc.reroute_traffic(yes = 1) GLOB.lore_atc.reroute_traffic(TRUE)
//calls the shuttle for a routine crew transfer //calls the shuttle for a routine crew transfer
/datum/controller/subsystem/emergencyshuttle/proc/call_transfer() /datum/controller/subsystem/emergencyshuttle/proc/call_transfer()
@@ -111,7 +111,7 @@ SUBSYSTEM_DEF(emergencyshuttle)
var/estimated_time = round(estimate_arrival_time()/60,1) var/estimated_time = round(estimate_arrival_time()/60,1)
priority_announcement.Announce(replacetext(replacetext(GLOB.using_map.shuttle_called_message, "%dock_name%", "[GLOB.using_map.dock_name]"), "%ETA%", "[estimated_time] minute\s")) priority_announcement.Announce(replacetext(replacetext(GLOB.using_map.shuttle_called_message, "%dock_name%", "[GLOB.using_map.dock_name]"), "%ETA%", "[estimated_time] minute\s"))
atc.shift_ending() GLOB.lore_atc.shift_ending()
//recalls the shuttle //recalls the shuttle
/datum/controller/subsystem/emergencyshuttle/proc/recall() /datum/controller/subsystem/emergencyshuttle/proc/recall()

View File

@@ -51,8 +51,8 @@
var/company = "*ERROR*" var/company = "*ERROR*"
// First, get a list of TSCs in our lore. // First, get a list of TSCs in our lore.
var/list/candidates = list() var/list/candidates = list()
for(var/path in loremaster.organizations) for(var/path in GLOB.loremaster.organizations)
var/datum/lore/organization/O = loremaster.organizations[path] var/datum/lore/organization/O = GLOB.loremaster.organizations[path]
if(!istype(O, /datum/lore/organization/tsc)) if(!istype(O, /datum/lore/organization/tsc))
continue continue
if(O.short_name == GLOB.using_map.company_name || O.name == GLOB.using_map.company_name) if(O.short_name == GLOB.using_map.company_name || O.name == GLOB.using_map.company_name)

View File

@@ -40,7 +40,7 @@
/obj/machinery/computer/communications/New() /obj/machinery/computer/communications/New()
..() ..()
ATC = atc ATC = GLOB.lore_atc
crew_announcement.newscast = 1 crew_announcement.newscast = 1
/obj/machinery/computer/communications/process() /obj/machinery/computer/communications/process()

View File

@@ -1,149 +1,190 @@
//Cactus, Speedbird, Dynasty, oh my /// Also, massive additions/refactors by Killian, because the original incarnation was full of holes
//Also, massive additions/refactors by Killian, because the original incarnation was full of holes /// Cleaned up to be less shit, again.
var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller GLOBAL_DATUM_INIT(lore_atc, /datum/lore/atc_controller, new)
/datum/lore/atc_controller /datum/lore/atc_controller
var/delay_min = 25 MINUTES //How long between ATC traffic //Shorter delays means more traffic, which gives the impression of a busier system, but also means a lot more radio noise
var/delay_max = 35 MINUTES //Adjusted to give approx 2 per hour, will work out to 10-14 over a full shift /// How long between ATC traffic
//Shorter delays means more traffic, which gives the impression of a busier system, but also means a lot more radio noise var/delay_min = 25 MINUTES
var/backoff_delay = 5 MINUTES //How long to back off if we can't talk and want to. Default is 5 mins. /// Adjusted to give approx 2 per hour, will work out to 10-14 over a full shift
var/initial_delay = 2 MINUTES //How long to wait before sending the first message of the shift. var/delay_max = 35 MINUTES
var/next_message = 30 MINUTES //When the next message should happen in world.time - Making it default to min value
var/force_chatter_type //Force a specific type of messages
var/squelched = 0 //If ATC is squelched currently /// How long to wait before sending the first message of the shift.
var/initial_delay = 2 MINUTES
/// When the next message should happen in world.time - Making it default to min value
var/next_message
//define a block of frequencies so we can have them be static instead of being random for each call /// Force a specific type of messages
var/force_chatter_type
/// If ATC is squelched currently
var/squelched = FALSE
/// A block of frequencies so we can have them be static instead of being random for each call
var/ertchannel var/ertchannel
var/medchannel var/medchannel
var/engchannel var/engchannel
var/secchannel var/secchannel
var/sdfchannel var/sdfchannel
/datum/lore/atc_controller/New()
/datum/lore/atc_controller/New() //assuming global start this same or close to init.
//generate our static event frequencies for the shift. alternately they can be completely fixed, up in the core block //generate our static event frequencies for the shift. alternately they can be completely fixed, up in the core block
ertchannel = "[rand(700,749)].[rand(1,9)]" ertchannel = "[rand(700,749)].[rand(1,9)]"
medchannel = "[rand(750,799)].[rand(1,9)]" medchannel = "[rand(750,799)].[rand(1,9)]"
engchannel = "[rand(800,849)].[rand(1,9)]" engchannel = "[rand(800,849)].[rand(1,9)]"
secchannel = "[rand(850,899)].[rand(1,9)]" secchannel = "[rand(850,899)].[rand(1,9)]"
sdfchannel = "[rand(900,999)].[rand(1,9)]" sdfchannel = "[rand(900,999)].[rand(1,9)]"
spawn(450 SECONDS) //Lots of lag at the start of a shift. Yes, the following lines *have* to be indented or they're not delayed by the spawn properly. spawn(450 SECONDS) //Lots of lag at the start of a shift. Yes, the following lines *have* to be indented or they're not delayed by the spawn properly.
/// HEY! if we have listiners for ssticker go use that instead of this snowflake.
msg("New shift beginning, resuming standard operations. This shift's Fleet Frequencies are as follows: Emergency Responders: [ertchannel]. Medical: [medchannel]. Engineering: [engchannel]. Security: [secchannel]. System Defense: [sdfchannel].") msg("New shift beginning, resuming standard operations. This shift's Fleet Frequencies are as follows: Emergency Responders: [ertchannel]. Medical: [medchannel]. Engineering: [engchannel]. Security: [secchannel]. System Defense: [sdfchannel].")
next_message = world.time + initial_delay next_message = world.time + initial_delay
process() START_PROCESSING(SSobj, src)
/datum/lore/atc_controller/process() /datum/lore/atc_controller/process()
if(world.time >= next_message) if(world.time >= next_message)
if(squelched) next_message = world.time + rand(delay_min, delay_max)
next_message = world.time + backoff_delay random_convo()
else
next_message = world.time + rand(delay_min,delay_max)
random_convo()
spawn(1 MINUTE) //We don't really need high-accuracy here. /datum/lore/atc_controller/proc/msg(message, sender)
process()
/datum/lore/atc_controller/proc/msg(var/message,var/sender)
ASSERT(message) ASSERT(message)
global_announcer.autosay("[message]", sender ? sender : "[GLOB.using_map.dock_name] Control") global_announcer.autosay("[message]", sender ? sender : "[GLOB.using_map.dock_name] Control")
/datum/lore/atc_controller/proc/reroute_traffic(var/yes = 1) /datum/lore/atc_controller/proc/reroute_traffic(yes = TRUE)
if(yes) if(yes)
if(!squelched) if(!squelched)
msg("Re-routing traffic and fleet patterns around [GLOB.using_map.station_name].") msg("Re-routing traffic and fleet patterns around [GLOB.using_map.station_name].")
squelched = 1 squelched = TRUE
STOP_PROCESSING(SSobj, src) //muh performance
else else
if(squelched) if(squelched)
msg("Resuming normal fleet patterns and traffic.") msg("Resuming normal fleet patterns and traffic.")
squelched = 0 squelched = FALSE
START_PROCESSING(SSobj, src)
/datum/lore/atc_controller/proc/shift_ending(var/evac = 0) /datum/lore/atc_controller/proc/shift_ending(evac = FALSE)
msg("[GLOB.using_map.shuttle_name], this is [GLOB.using_map.dock_name] Control, you are cleared to complete routine transfer from [GLOB.using_map.station_name] to [GLOB.using_map.dock_name].") msg("[GLOB.using_map.shuttle_name], this is [GLOB.using_map.dock_name] Control, you are cleared to complete routine transfer from [GLOB.using_map.station_name] to [GLOB.using_map.dock_name].")
sleep(5 SECONDS) sleep(5 SECONDS)
if(QDELETED(src))
return
msg("[GLOB.using_map.shuttle_name] departing [GLOB.using_map.dock_name] for [GLOB.using_map.station_name] on routine transfer route. Estimated time to arrival: ten minutes.","[GLOB.using_map.shuttle_name]") msg("[GLOB.using_map.shuttle_name] departing [GLOB.using_map.dock_name] for [GLOB.using_map.station_name] on routine transfer route. Estimated time to arrival: ten minutes.","[GLOB.using_map.shuttle_name]")
/// Next level optimzation for this: datumize the convo (see main holopads/holodisk!)
/datum/lore/atc_controller/proc/random_convo() /datum/lore/atc_controller/proc/random_convo()
var/one = pick(loremaster.organizations) //These will pick an index, not an instance /// Resolve to the instances
var/two = pick(loremaster.organizations) var/datum/lore/organization/source = GLOB.loremaster.organizations[pick(GLOB.loremaster.organizations)]
/// repurposed for new fun stuff
var/datum/lore/organization/source = loremaster.organizations[one] //Resolve to the instances var/datum/lore/organization/secondary = GLOB.loremaster.organizations[pick(GLOB.loremaster.organizations)]
var/datum/lore/organization/secondary = loremaster.organizations[two] //repurposed for new fun stuff
//Let's get some mission parameters, pick our first ship //Let's get some mission parameters, pick our first ship
var/name = source.name //get the name /// get the name
var/owner = source.short_name //Use the short name var/source_name = source.name
var/prefix = pick(source.ship_prefixes) //Pick a random prefix /// Use the short name
var/mission = source.ship_prefixes[prefix] //The value of the prefix is the mission type that prefix does var/source_owner = source.short_name
var/shipname = pick(source.ship_names) //Pick a random ship name /// Pick a random prefix
var/destname = pick(source.destination_names) //destination is where? var/source_prefix = pick(source.ship_prefixes)
var/law_abiding = source.lawful //do we fully observe system law (or are we otherwise favored by the system owners, i.e. NT)? /// The value of the prefix is the mission type that prefix does
var/law_breaker = source.hostile //or are we part of a pirate group var/source_mission = source.ship_prefixes[source_prefix]
var/system_defense = source.sysdef //are we actually system law/SDF? unlocks the SDF-specific events /// Pick a random ship name
var/source_shipname = pick(source.ship_names)
/// Destination is where?
var/source_destname = pick(source.destination_names)
/// do we fully observe system law (or are we otherwise favored by the system owners, i.e. NT)?
var/source_law_abiding = source.lawful
/// or are we part of a pirate group
var/source_law_breaker = source.hostile
/// are we actually system law/SDF? unlocks the SDF-specific events
var/source_system_defense = source.sysdef
//pick our second ship //pick our second ship
//var/secondname = secondary.name //not used atm, commented out to suppress errors var/secondary_owner = secondary.short_name
var/secondowner = secondary.short_name /// Pick a random prefix
var/secondprefix = pick(secondary.ship_prefixes) //Pick a random prefix var/secondary_prefix = pick(secondary.ship_prefixes)
var/secondshipname = pick(secondary.ship_names) //Pick a random ship name /// Pick a random ship name
var/law_abiding2 = secondary.lawful var/secondary_shipname = pick(secondary.ship_names)
var/law_breaker2 = secondary.hostile /// Law abiding?
var/system_defense2 = secondary.sysdef //mostly here as a secondary check to ensure SDF don't interrogate other SDF var/secondary_law_abiding = secondary.lawful
/// Part of the syndicats?
var/secondary_law_breaker = secondary.hostile
/// mostly here as a secondary check to ensure SDF don't interrogate other SDF
var/secondary_system_defense = secondary.sysdef
var/combined_first_name = "[owner][prefix] |[shipname]|" var/combined_first_name = "[source_owner][source_prefix] |[source_shipname]|"
var/combined_second_name = "[secondowner][secondprefix] |[secondshipname]|" var/combined_second_name = "[secondary_owner][secondary_prefix] |[secondary_shipname]|"
var/alt_atc_names = list("[GLOB.using_map.dock_name] Traffic Control","[GLOB.using_map.dock_name] TraCon","[GLOB.using_map.dock_name] System Control","[GLOB.using_map.dock_name] Star Control","[GLOB.using_map.dock_name] SysCon","[GLOB.using_map.dock_name] Tower","[GLOB.using_map.dock_name] Control","[GLOB.using_map.dock_name] STC","[GLOB.using_map.dock_name] StarCon") var/alt_atc_names = list("[GLOB.using_map.dock_name] Traffic Control","[GLOB.using_map.dock_name] TraCon","[GLOB.using_map.dock_name] System Control","[GLOB.using_map.dock_name] Star Control","[GLOB.using_map.dock_name] SysCon","[GLOB.using_map.dock_name] Tower","[GLOB.using_map.dock_name] Control","[GLOB.using_map.dock_name] STC","[GLOB.using_map.dock_name] StarCon")
var/mission_noun = pick(source.flight_types) //pull from a list of owner-specific flight ops, to allow an extra dash of flavor /// pull from a list of owner-specific flight ops, to allow an extra dash of flavor
if(source.complex_tasks) //if our source has the complex_tasks flag, regenerate with a two-stage assignment var/mission_noun = pick(source.flight_types)
/// if our source has the complex_tasks flag, regenerate with a two-stage assignment
if(source.complex_tasks)
mission_noun = "[pick(source.task_types)] [pick(source.flight_types)]" mission_noun = "[pick(source.task_types)] [pick(source.flight_types)]"
//First response is 'yes', second is 'no' //First response is 'yes', second is 'no'
var/requests = list( var/list/requests = list(
"special flight rules" = list("authorizing special flight rules", "denying special flight rules, not allowed for your traffic class"), "special flight rules" = list("authorizing special flight rules", "denying special flight rules, not allowed for your traffic class"),
"current solar weather info" = list("sending you the relevant information via tightbeam", "your request has been queued, stand by"), "current solar weather info" = list("sending you the relevant information via tightbeam", "your request has been queued, stand by"),
"aerospace priority" = list("affirmative, aerospace priority is yours", "negative, another vessel has priority right now"), "aerospace priority" = list("affirmative, aerospace priority is yours", "negative, another vessel has priority right now"),
"system traffic info" = list("sending you current traffic info", "request queued, please hold"), "system traffic info" = list("sending you current traffic info", "request queued, please hold"),
"refueling information" = list("sending refueling information now", "depots currently experiencing fuel shortages, advise you move on"), "refueling information" = list("sending refueling information now", "depots currently experiencing fuel shortages, advise you move on"),
"a current system time sync" = list("sending time sync ping to you now", "your ship isn't compatible with our time sync, set time manually"), "a current system time sync" = list("sending time sync ping to you now", "your ship isn't compatible with our time sync, set time manually"),
"current system starcharts" = list("transmitting current starcharts", "your request is queued, overloaded right now") "current system starcharts" = list("transmitting current starcharts", "your request is queued, overloaded right now")
) )
//Random chance things for variety //Random chance things for variety
var/chatter_type = "normal" var/chatter_type = "normal"
if(force_chatter_type) if(force_chatter_type)
chatter_type = force_chatter_type chatter_type = force_chatter_type
else if(law_abiding && !system_defense) //I have to offload this from the chatter_type switch below and do it here, otherwise BYOND throws a shitfit for no discernable reason //I have to offload this from the chatter_type switch below and do it here. Byond should throw a shitfit because this isn't how you use pick.
chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdenied",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest","normal",30;"undockingdenied",30;"undockingdelayed") else if(source_law_abiding && !source_system_defense)
chatter_type = pickweight(list("emerg" = 5, "policescan" = 25, "traveladvisory" = 25,
"pathwarning" = 30, "dockingrequestgeneric" = 30, "dockingrequestdenied" = 30,
"dockingrequestdelayed" = 30, "dockingrequestsupply" = 30, "dockingrequestrepair" = 30,
"dockingrequestmedical" = 30, "dockingrequestsecurity" = 30, "undockingrequest" = 30,
"undockingdenied" = 30, "undockingdelayed" = 30, "normal"))
//the following filters *always* fire their 'unique' event when they're tripped, simply because the conditions behind them are quite rare to begin with //the following filters *always* fire their 'unique' event when they're tripped, simply because the conditions behind them are quite rare to begin with
else if(name == "Smugglers" && !system_defense2) //just straight up funnel smugglers into always being caught, otherwise we get them asking for traffic info and stuff //just straight up funnel smugglers into always being caught, otherwise we get them asking for traffic info and stuff
else if(source_name == "Smugglers" && !secondary_system_defense)
chatter_type = "policeflee" chatter_type = "policeflee"
else if(name == "Smugglers" && system_defense2) //ditto, if an SDF ship catches them //ditto, if an SDF ship catches them
else if(source_name == "Smugglers" && secondary_system_defense)
chatter_type = "policeshipflee" chatter_type = "policeshipflee"
else if(law_abiding && law_breaker2) //on the offchance that we manage to roll a goodguy and a badguy, run a new distress event - it's like emerg but better else if(source_law_abiding && secondary_law_breaker) //on the offchance that we manage to roll a goodguy and a badguy, run a new distress event - it's like emerg but better
chatter_type = "distress" chatter_type = "distress"
else if(law_breaker && system_defense2) //if we roll this combo instead, time for the SDF to do their fucking job else if(source_law_breaker && secondary_system_defense) //if we roll this combo instead, time for the SDF to do their fucking job
chatter_type = "policeshipcombat" chatter_type = "policeshipcombat"
else if(law_breaker && !system_defense2) //but if we roll THIS combo, time to alert the SDF to get off their asses else if(source_law_breaker && !secondary_system_defense) //but if we roll THIS combo, time to alert the SDF to get off their asses
chatter_type = "hostiledetected" chatter_type = "hostiledetected"
//SDF-specific events that need to filter based on the second party (basically just the following SDF-unique list with the soft-result ship scan thrown in) //SDF-specific events that need to filter based on the second party (basically just the following SDF-unique list with the soft-result ship scan thrown in)
else if(system_defense && law_abiding2 && !system_defense2) //let's see if we can narrow this down, I didn't see many ship-to-ship scans else if(source_system_defense && secondary_law_abiding && !secondary_system_defense) //let's see if we can narrow this down, I didn't see many ship-to-ship scans
chatter_type = pick(75;"policeshipscan","sdfpatrolupdate",75;"sdfendingpatrol",30;"dockingrequestgeneric",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",20;"undockingrequest",75;"sdfbeginpatrol",50;"normal") chatter_type = pickweight(list("policeshipscan" = 75, "sdfpatrolupdate", "sdfendingpatrol" = 75,
"dockingrequestgeneric" = 30, "dockingrequestdelayed" = 30, "dockingrequestsupply" = 30,
"dockingrequestrepair" = 30, "dockingrequestmedical" = 30, "dockingrequestsecurity" = 30,
"undockingrequest" = 20, "sdfbeginpatrol" = 75, "normal"))
//SDF-specific events that don't require the secondary at all, in the event that we manage to roll SDF + hostile/smuggler or something //SDF-specific events that don't require the secondary at all, in the event that we manage to roll SDF + hostile/smuggler or something
else if(system_defense) else if(source_system_defense)
chatter_type = pick("sdfpatrolupdate",60;"sdfendingpatrol",30;"dockingrequestgeneric",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",20;"undockingrequest",80;"sdfbeginpatrol","normal") chatter_type = pickweight(list("sdfpatrolupdate", "sdfendingpatrol" = 60, "dockingrequestgeneric" = 30,
"dockingrequestdelayed" = 30, "dockingrequestsupply" = 30, "dockingrequestrepair" = 30,
"dockingrequestmedical" = 30, "dockingrequestsecurity" = 30, "undockingrequest" = 20,
"sdfbeginpatrol" = 80, "normal"))
//if we somehow don't match any of the other existing filters once we've run through all of them //if we somehow don't match any of the other existing filters once we've run through all of them
else else
chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdelayed",30;"dockingrequestdenied",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest",30;"undockingdenied",30;"undockingdelayed","normal") chatter_type = pickweight(list("emerg" = 5, "policescan" = 25, "traveladvisory" = 25,
"pathwarning" = 30, "dockingrequestgeneric" = 30, "dockingrequestdelayed" = 30,
"dockingrequestdenied" = 30, "dockingrequestsupply" = 30, "dockingrequestrepair" = 30,
"dockingrequestmedical" = 30, "dockingrequestsecurity" = 30, "undockingrequest" = 30,
"undockingdenied" = 30, "undockingdelayed" = 30,"normal"))
//I probably should do some kind of pass here to work through all the possible combinations of major factors and see if the filtering list needs reordering or modifying, but I really can't be arsed //I probably should do some kind of pass here to work through all the possible combinations of major factors and see if the filtering list needs reordering or modifying, but I really can't be arsed
var/yes = prob(90) //Chance for them to say yes vs no //Chance for them to say yes vs no
var/yes = prob(90)
var/request = pick(requests) var/request = pick(requests)
var/callname = pick(alt_atc_names) var/callname = pick(alt_atc_names)
var/response = requests[request][yes ? 1 : 2] //1 is yes, 2 is no var/response = requests[request][yes ? 1 : 2] //1 is yes, 2 is no
var/number = rand(1,42) var/number = rand(1,42)
var/zone = pick("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega") var/zone = pick("Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta",
"Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omicron", "Pi",
"Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega")
//fallbacks in case someone sets the dock_type on the map datum to null- it defaults to "station" normally //fallbacks in case someone sets the dock_type on the map datum to null- it defaults to "station" normally
var/landing_zone = "LZ [zone]" var/landing_zone = "LZ [zone]"
var/landing_move = "landing request" var/landing_move = "landing request"
@@ -167,24 +208,27 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
switch(chatter_type) switch(chatter_type)
//mayday call //mayday call
if("emerg") if("emerg")
var/problem = pick("We have hull breaches on multiple decks","We have unknown hostile life forms on board","Our primary drive is failing","We have asteroids impacting the hull","We're experiencing a total loss of engine power","We have hostile ships closing fast","There's smoke in the cockpit","We have unidentified boarders","Our life support has failed") var/problem = pick("We have hull breaches on multiple decks",
msg("+Mayday, mayday, mayday!+ This is [combined_first_name] declaring an emergency! [problem]!","[prefix] [shipname]") "We have unknown hostile life forms on board", "Our primary drive is failing",
"We have asteroids impacting the hull", "We're experiencing a total loss of engine power",
"We have hostile ships closing fast", "There's smoke in the cockpit",
"We have unidentified boarders", "Our life support has failed")
msg("<b>Mayday, mayday, mayday!</b> This is [combined_first_name] declaring an emergency! [problem]!","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control, copy. Switch to emergency responder channel [ertchannel].") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control, copy. Switch to emergency responder channel [ertchannel].")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("Understood [GLOB.using_map.dock_name] Control, switching now.","[prefix] [shipname]") msg("Understood [GLOB.using_map.dock_name] Control, switching now.","[source_prefix] [source_shipname]")
//Control scan event: soft outcome //Control scan event: soft outcome
if("policescan") if("policescan")
var/confirm = pick("Understood","Roger that","Affirmative")
var/complain = pick("I hope this doesn't take too long.","Can we hurry this up?","Make it quick.","This better not take too long.","Is this really necessary?") var/complain = pick("I hope this doesn't take too long.","Can we hurry this up?","Make it quick.","This better not take too long.","Is this really necessary?")
var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","You're clear, move along.","Apologies for the delay, you're clear.","Switch to channel [sdfchannel] and await further instruction.") var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","You're clear, move along.","Apologies for the delay, you're clear.","Switch to channel [sdfchannel] and await further instruction.")
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control, your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control, your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[confirm] [GLOB.using_map.dock_name] Control, holding position.","[prefix] [shipname]") msg("[pick("Understood", "Roger that", "Affirmative")] [GLOB.using_map.dock_name] Control, holding position.","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("Your compliance is appreciated, [combined_first_name]. Scan commencing.") msg("Your compliance is appreciated, [combined_first_name]. Scan commencing.")
sleep(10 SECONDS) sleep(10 SECONDS)
msg(complain,"[prefix] [shipname]") msg(complain,"[source_prefix] [source_shipname]")
sleep(15 SECONDS) sleep(15 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Scan complete. [completed]") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Scan complete. [completed]")
//Control scan event: hard outcome //Control scan event: hard outcome
@@ -192,7 +236,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
var/uhoh = pick("No can do chief, we got places to be.","Sorry but we've got places to be.","Not happening.","Ah fuck, who ratted us out this time?!","You'll never take me alive!","Hey, I have a cloaking device! You can't see me!","I'm going to need to ask for a refund on that stealth drive...","I'm afraid I can't do that, Control.","Ah |hell|.","Fuck!","This isn't the ship you're looking for.","Well. This is awkward.","Uh oh.","I surrender!") var/uhoh = pick("No can do chief, we got places to be.","Sorry but we've got places to be.","Not happening.","Ah fuck, who ratted us out this time?!","You'll never take me alive!","Hey, I have a cloaking device! You can't see me!","I'm going to need to ask for a refund on that stealth drive...","I'm afraid I can't do that, Control.","Ah |hell|.","Fuck!","This isn't the ship you're looking for.","Well. This is awkward.","Uh oh.","I surrender!")
msg("Unknown [pick("ship","vessel","starship")], this is [GLOB.using_map.dock_name] Control, identify yourself and submit to a full inspection. Flying without an active transponder is a violation of system regulations.") msg("Unknown [pick("ship","vessel","starship")], this is [GLOB.using_map.dock_name] Control, identify yourself and submit to a full inspection. Flying without an active transponder is a violation of system regulations.")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[uhoh]","[shipname]") msg("[uhoh]","[source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("This is [GLOB.using_map.starsys_name] Defense Control to all local assets: vector to interdict and detain [combined_first_name]. Control out.","[GLOB.using_map.starsys_name] Defense Control") msg("This is [GLOB.using_map.starsys_name] Defense Control to all local assets: vector to interdict and detain [combined_first_name]. Control out.","[GLOB.using_map.starsys_name] Defense Control")
//SDF scan event: soft outcome //SDF scan event: soft outcome
@@ -200,46 +244,46 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
var/confirm = pick("Understood","Roger that","Affirmative") var/confirm = pick("Understood","Roger that","Affirmative")
var/complain = pick("I hope this doesn't take too long.","Can we hurry this up?","Make it quick.","This better not take too long.","Is this really necessary?") var/complain = pick("I hope this doesn't take too long.","Can we hurry this up?","Make it quick.","This better not take too long.","Is this really necessary?")
var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","You're clear. Move along.","Apologies for the delay, you're clear.","Switch to channel [sdfchannel] and await further instruction.") var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","You're clear. Move along.","Apologies for the delay, you're clear.","Switch to channel [sdfchannel] and await further instruction.")
msg("[combined_second_name], this is [combined_first_name], your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.","[prefix] [shipname]") msg("[combined_second_name], this is [combined_first_name], your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[confirm] [combined_first_name], holding position.","[secondprefix] [secondshipname]") msg("[confirm] [combined_first_name], holding position.","[secondary_prefix] [secondary_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("Your compliance is appreciated, [combined_second_name]. Scan commencing.","[prefix] [shipname]") msg("Your compliance is appreciated, [combined_second_name]. Scan commencing.","[source_prefix] [source_shipname]")
sleep(10 SECONDS) sleep(10 SECONDS)
msg(complain,"[secondprefix] [secondshipname]") msg(complain,"[secondary_prefix] [secondary_shipname]")
sleep(15 SECONDS) sleep(15 SECONDS)
msg("[combined_second_name], this is [combined_first_name]. Scan complete. [completed]","[prefix] [shipname]") msg("[combined_second_name], this is [combined_first_name]. Scan complete. [completed]","[source_prefix] [source_shipname]")
//SDF scan event: hard outcome //SDF scan event: hard outcome
if("policeshipflee") if("policeshipflee")
var/uhoh = pick("No can do chief, we got places to be.","Sorry but we've got places to be.","Not happening.","Ah fuck, who ratted us out this time?!","You'll never take me alive!","Hey, I have a cloaking device! You can't see me!","I'm going to need to ask for a refund on that stealth drive...","I'm afraid I can't do that, |[shipname]|.","Ah |hell|.","Fuck!","This isn't the ship you're looking for.","Well. This is awkward.","Uh oh.","I surrender!") var/uhoh = pick("No can do chief, we got places to be.","Sorry but we've got places to be.","Not happening.","Ah fuck, who ratted us out this time?!","You'll never take me alive!","Hey, I have a cloaking device! You can't see me!","I'm going to need to ask for a refund on that stealth drive...","I'm afraid I can't do that, |[source_shipname]|.","Ah |hell|.","Fuck!","This isn't the ship you're looking for.","Well. This is awkward.","Uh oh.","I surrender!")
msg("Unknown [pick("ship","vessel","starship")], this is [combined_second_name], identify yourself and submit to a full inspection. Flying without an active transponder is a violation of system regulations.","[secondprefix] [secondshipname]") msg("Unknown [pick("ship","vessel","starship")], this is [combined_second_name], identify yourself and submit to a full inspection. Flying without an active transponder is a violation of system regulations.","[secondary_prefix] [secondary_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[uhoh]","[shipname]") msg("[uhoh]","[source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[GLOB.using_map.starsys_name] Defense Control, this is [combined_second_name], we have a situation here, please advise.","[secondprefix] [secondshipname]") msg("[GLOB.using_map.starsys_name] Defense Control, this is [combined_second_name], we have a situation here, please advise.","[secondary_prefix] [secondary_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("Defense Control copies, [combined_second_name], reinforcements are en route. Switch further communications to encrypted band [sdfchannel].","[GLOB.using_map.starsys_name] Defense Control") msg("Defense Control copies, [combined_second_name], reinforcements are en route. Switch further communications to encrypted band [sdfchannel].","[GLOB.using_map.starsys_name] Defense Control")
//SDF scan event: engage primary in combat! fairly rare since it needs a pirate/vox + SDF roll //SDF scan event: engage primary in combat! fairly rare since it needs a pirate/vox + SDF roll
if("policeshipcombat") if("policeshipcombat")
var/battlestatus = pick("requesting reinforcements.","we need backup! Now!","holding steady.","we're holding our own for now.","we have them on the run.","they're trying to make a run for it!","we have them right where we want them.","we're badly outgunned!","we have them outgunned.","we're outnumbered here!","we have them outnumbered.","this'll be a cakewalk.",10;"notify their next of kin.") var/battlestatus = pick("requesting reinforcements.","we need backup! Now!","holding steady.","we're holding our own for now.","we have them on the run.","they're trying to make a run for it!","we have them right where we want them.","we're badly outgunned!","we have them outgunned.","we're outnumbered here!","we have them outnumbered.","this'll be a cakewalk.",10;"notify their next of kin.")
msg("[GLOB.using_map.starsys_name] Defense Control, this is [combined_second_name], engaging [combined_first_name] [pick("near route","in sector")] [rand(1,100)], [battlestatus]","[secondprefix] [secondshipname]") msg("[GLOB.using_map.starsys_name] Defense Control, this is [combined_second_name], engaging [combined_first_name] [pick("near route","in sector")] [rand(1,100)], [battlestatus]","[secondary_prefix] [secondary_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[GLOB.using_map.starsys_name] Defense Control copies, [combined_second_name]. Keep us updated.","[GLOB.using_map.starsys_name] Defense Control") msg("[GLOB.using_map.starsys_name] Defense Control copies, [combined_second_name]. Keep us updated.","[GLOB.using_map.starsys_name] Defense Control")
//SDF event: patrol update //SDF event: patrol update
if("sdfpatrolupdate") if("sdfpatrolupdate")
var/statusupdate = pick("nothing unusual so far","nothing of note","everything looks clear so far","ran off some [pick("pirates","marauders")] near route [pick(1,100)], [pick("no","minor")] damage sustained, continuing patrol","situation normal, no suspicious activity yet","minor incident on route [pick(1,100)]","Code 7-X [pick("on route","in sector")] [pick(1,100)], situation is under control","seeing a lot of traffic on route [pick(1,100)]","caught a couple of smugglers [pick("on route","in sector")] [pick(1,100)]","sustained some damage in a skirmish just now, we're heading back for repairs") var/statusupdate = pick("nothing unusual so far","nothing of note","everything looks clear so far","ran off some [pick("pirates","marauders")] near route [pick(1,100)], [pick("no","minor")] damage sustained, continuing patrol","situation normal, no suspicious activity yet","minor incident on route [pick(1,100)]","Code 7-X [pick("on route","in sector")] [pick(1,100)], situation is under control","seeing a lot of traffic on route [pick(1,100)]","caught a couple of smugglers [pick("on route","in sector")] [pick(1,100)]","sustained some damage in a skirmish just now, we're heading back for repairs")
msg("[GLOB.using_map.starsys_name] Defense Control, this is [combined_first_name] reporting in, [statusupdate], over.","[prefix] [shipname]") msg("[GLOB.using_map.starsys_name] Defense Control, this is [combined_first_name] reporting in, [statusupdate], over.","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[GLOB.using_map.starsys_name] Defense Control copies, [combined_first_name]. Keep us updated, out.","[GLOB.using_map.starsys_name] Defense Control") msg("[GLOB.using_map.starsys_name] Defense Control copies, [combined_first_name]. Keep us updated, out.","[GLOB.using_map.starsys_name] Defense Control")
//SDF event: end patrol //SDF event: end patrol
if("sdfendingpatrol") if("sdfendingpatrol")
var/appreciation = pick("Copy","Understood","Affirmative","10-4","Roger that") var/appreciation = pick("Copy","Understood","Affirmative","10-4","Roger that")
var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.")
msg("[callname], this is [combined_first_name], returning from our system patrol route, requesting permission to [landing_short].","[prefix] [shipname]") msg("[callname], this is [combined_first_name], returning from our system patrol route, requesting permission to [landing_short].","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[source_prefix] [source_shipname]")
//DefCon event: hostile found //DefCon event: hostile found
if("hostiledetected") if("hostiledetected")
var/orders = pick("Engage on sight","Engage with caution","Engage with extreme prejudice","Engage at will","Search and destroy","Bring them in alive, if possible","Interdict and detain","Keep your eyes peeled","Bring them in, dead or alive","Stay alert") var/orders = pick("Engage on sight","Engage with caution","Engage with extreme prejudice","Engage at will","Search and destroy","Bring them in alive, if possible","Interdict and detain","Keep your eyes peeled","Bring them in, dead or alive","Stay alert")
@@ -248,11 +292,11 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
msg("Be on the lookout for [combined_first_name], last sighted near route [rand(1,100)]. [orders]. DefCon, out.","[GLOB.using_map.starsys_name] Defense Control") msg("Be on the lookout for [combined_first_name], last sighted near route [rand(1,100)]. [orders]. DefCon, out.","[GLOB.using_map.starsys_name] Defense Control")
//Ship event: distress call, under attack //Ship event: distress call, under attack
if("distress") if("distress")
msg("+Mayday, mayday, mayday!+ This is [combined_first_name] declaring an emergency! We are under attack by [combined_second_name]! Requesting immediate assistance!","[prefix] [shipname]") msg("+Mayday, mayday, mayday!+ This is [combined_first_name] declaring an emergency! We are under attack by [combined_second_name]! Requesting immediate assistance!","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.starsys_name] Defense Control, copy. SDF is en route, contact on [sdfchannel].") msg("[combined_first_name], this is [GLOB.using_map.starsys_name] Defense Control, copy. SDF is en route, contact on [sdfchannel].")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("Understood [GLOB.using_map.starsys_name] Defense Control, switching now.","[prefix] [shipname]") msg("Understood [GLOB.using_map.starsys_name] Defense Control, switching now.","[source_prefix] [source_shipname]")
//Control event: travel advisory //Control event: travel advisory
if("traveladvisory") if("traveladvisory")
var/flightwarning = pick("Solar flare activity is spiking and expected to cause issues along main flight lanes [rand(1,33)], [rand(34,67)], and [rand(68,100)]","Pirate activity is on the rise, stay close to System Defense vessels","We're seeing a rise in illegal salvage operations, please report any unusual activity to the nearest SDF vessel via channel [sdfchannel]","Vox Marauder activity is higher than usual, report any unusual activity to the nearest System Defense vessel","A quarantined [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","A prison [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","Traffic volume is higher than normal, expect processing delays","Anomalous bluespace activity detected along route [rand(1,100)], exercise caution","Smugglers have been particularly active lately, expect increased security scans","Depots are currently experiencing a fuel shortage, expect delays and higher rates","Asteroid mining has displaced debris dangerously close to main flight lanes on route [rand(1,100)], watch for potential impactors","[pick("Pirate","Vox Marauder")] and System Defense forces are currently engaged in skirmishes throughout the system, please steer clear of any active combat zones","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] has collided with a [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] near route [rand(1,100)], watch for debris and do not impede emergency service vessels","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] on route [rand(1,100)] has experienced total engine failure. Emergency response teams are en route, please observe minimum safe distances and do not impede emergency service vessels","Transit routes have been recalculated to adjust for planetary drift. Please synch your astronav computers as soon as possible to avoid delays and difficulties","[pick("Bounty hunters","System Defense officers","Mercenaries")] are currently searching for a wanted fugitive, report any sightings of suspicious activity to System Defense via channel [sdfchannel]","Mercenary contractors are currently conducting aggressive [pick("piracy","marauder")] suppression operations",10;"It's space carp breeding season. [pick("Stars","Gods","God","Goddess")] have mercy on you all, because the carp won't") var/flightwarning = pick("Solar flare activity is spiking and expected to cause issues along main flight lanes [rand(1,33)], [rand(34,67)], and [rand(68,100)]","Pirate activity is on the rise, stay close to System Defense vessels","We're seeing a rise in illegal salvage operations, please report any unusual activity to the nearest SDF vessel via channel [sdfchannel]","Vox Marauder activity is higher than usual, report any unusual activity to the nearest System Defense vessel","A quarantined [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","A prison [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","Traffic volume is higher than normal, expect processing delays","Anomalous bluespace activity detected along route [rand(1,100)], exercise caution","Smugglers have been particularly active lately, expect increased security scans","Depots are currently experiencing a fuel shortage, expect delays and higher rates","Asteroid mining has displaced debris dangerously close to main flight lanes on route [rand(1,100)], watch for potential impactors","[pick("Pirate","Vox Marauder")] and System Defense forces are currently engaged in skirmishes throughout the system, please steer clear of any active combat zones","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] has collided with a [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] near route [rand(1,100)], watch for debris and do not impede emergency service vessels","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] on route [rand(1,100)] has experienced total engine failure. Emergency response teams are en route, please observe minimum safe distances and do not impede emergency service vessels","Transit routes have been recalculated to adjust for planetary drift. Please synch your astronav computers as soon as possible to avoid delays and difficulties","[pick("Bounty hunters","System Defense officers","Mercenaries")] are currently searching for a wanted fugitive, report any sightings of suspicious activity to System Defense via channel [sdfchannel]","Mercenary contractors are currently conducting aggressive [pick("piracy","marauder")] suppression operations",10;"It's space carp breeding season. [pick("Stars","Gods","God","Goddess")] have mercy on you all, because the carp won't")
@@ -266,43 +310,43 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
var/safetravels = pick("Fly safe out there","Good luck","Safe travels","Godspeed","Stars guide you","Don't let it happen again") var/safetravels = pick("Fly safe out there","Good luck","Safe travels","Godspeed","Stars guide you","Don't let it happen again")
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control, your [pick("ship","vessel","starship")] is approaching [navhazard], observe minimum safe distance and adjust your heading appropriately.") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control, your [pick("ship","vessel","starship")] is approaching [navhazard], observe minimum safe distance and adjust your heading appropriately.")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[confirm] [GLOB.using_map.dock_name] Control, adjusting course.","[prefix] [shipname]") msg("[confirm] [GLOB.using_map.dock_name] Control, adjusting course.","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("Your compliance is appreciated, [combined_first_name]. [safetravels].") msg("Your compliance is appreciated, [combined_first_name]. [safetravels].")
//Ship event: docking request (generic) //Ship event: docking request (generic)
if("dockingrequestgeneric") if("dockingrequestgeneric")
var/appreciation = pick("Much appreciated","Many thanks","Understood","Cheers") var/appreciation = pick("Much appreciated","Many thanks","Understood","Cheers")
var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.")
msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [source_destname], requesting permission to [landing_short].","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[source_prefix] [source_shipname]")
//Ship event: docking request (denied) //Ship event: docking request (denied)
if("dockingrequestdenied") if("dockingrequestdenied")
var/reason = pick("we don't have any landing pads large enough for your vessel","we don't have the necessary facilities for your vessel type or class") var/reason = pick("we don't have any landing pads large enough for your vessel","we don't have the necessary facilities for your vessel type or class")
var/disappointed = pick("That's unfortunate. [combined_first_name], out.","Damn shame. We'll just have to keep moving. [combined_first_name], out.","[combined_first_name], out.") var/disappointed = pick("That's unfortunate. [combined_first_name], out.","Damn shame. We'll just have to keep moving. [combined_first_name], out.","[combined_first_name], out.")
msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_move].","[prefix] [shipname]") msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [source_destname], requesting permission to [landing_move].","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Request denied, [reason].") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Request denied, [reason].")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("Understood, [GLOB.using_map.dock_name] Control. [disappointed]","[prefix] [shipname]") msg("Understood, [GLOB.using_map.dock_name] Control. [disappointed]","[source_prefix] [source_shipname]")
//Ship event: docking request (delayed) //Ship event: docking request (delayed)
if("dockingrequestdelayed") if("dockingrequestdelayed")
var/reason = pick("we don't have any free landing pads right now, please hold for three minutes","you're too far away, please close to ten thousand meters","we're seeing heavy traffic around the landing pads right now, please hold for three minutes","we're currently cleaning up a fuel spill on one of our free pads, please hold for three minutes","there are loose containers on our free pads, stand by for a couple of minutes whilst we secure them","another vessel has aerospace priority right now, please hold for three minutes") var/reason = pick("we don't have any free landing pads right now, please hold for three minutes","you're too far away, please close to ten thousand meters","we're seeing heavy traffic around the landing pads right now, please hold for three minutes","we're currently cleaning up a fuel spill on one of our free pads, please hold for three minutes","there are loose containers on our free pads, stand by for a couple of minutes whilst we secure them","another vessel has aerospace priority right now, please hold for three minutes")
var/appreciation = pick("Much appreciated","Many thanks","Understood","Perfect, thank you","Excellent, thanks","Great","Copy that") var/appreciation = pick("Much appreciated","Many thanks","Understood","Perfect, thank you","Excellent, thanks","Great","Copy that")
var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.")
msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [source_destname], requesting permission to [landing_short].","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Request denied, [reason] and resubmit your request.") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Request denied, [reason] and resubmit your request.")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("Understood, [GLOB.using_map.dock_name] Control.","[prefix] [shipname]") msg("Understood, [GLOB.using_map.dock_name] Control.","[source_prefix] [source_shipname]")
sleep(180 SECONDS) sleep(180 SECONDS)
msg("[callname], this is [combined_first_name], resubmitting [landing_move].","[prefix] [shipname]") msg("[callname], this is [combined_first_name], resubmitting [landing_move].","[source_prefix] [source_shipname]")
sleep (5 SECONDS) sleep (5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Everything appears to be in order now, permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Everything appears to be in order now, permission granted, proceed to [landing_zone]. Follow the green lights on your way in.")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[source_prefix] [source_shipname]")
//Ship event: docking request (resupply) //Ship event: docking request (resupply)
if("dockingrequestsupply") if("dockingrequestsupply")
var/preintensifier = pick(75;"getting ",75;"running ","") //whitespace hack, sometimes they'll add a preintensifier, but not always var/preintensifier = pick(75;"getting ",75;"running ","") //whitespace hack, sometimes they'll add a preintensifier, but not always
@@ -310,67 +354,67 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
var/low_thing = pick("ammunition","munitions","clean water","food","spare parts","medical supplies","reaction mass","gas","hydrogen fuel","phoron fuel","fuel",10;"tea",10;"coffee",10;"soda",10;"pizza",10;"beer",10;"booze",10;"vodka",10;"snacks") //low chance of a less serious shortage var/low_thing = pick("ammunition","munitions","clean water","food","spare parts","medical supplies","reaction mass","gas","hydrogen fuel","phoron fuel","fuel",10;"tea",10;"coffee",10;"soda",10;"pizza",10;"beer",10;"booze",10;"vodka",10;"snacks") //low chance of a less serious shortage
var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you")
var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.")
msg("[callname], this is [combined_first_name]. We're [preintensifier][intensifier] low on [low_thing]. Requesting permission to [landing_short] for resupply.","[prefix] [shipname]") msg("[callname], this is [combined_first_name]. We're [preintensifier][intensifier] low on [low_thing]. Requesting permission to [landing_short] for resupply.","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[source_prefix] [source_shipname]")
//Ship event: docking request (repair/maint) //Ship event: docking request (repair/maint)
if("dockingrequestrepair") if("dockingrequestrepair")
var/damagestate = pick("We've experienced some hull damage","We're suffering minor system malfunctions","We're having some technical issues","We're overdue maintenance","We have several minor space debris impacts","We've got some battle damage here","Our reactor output is fluctuating","We're hearing some weird noises from the [pick("engines","pipes","ducting","HVAC")]","Our artificial gravity generator has failed","Our life support is failing","Our environmental controls are busted","Our water recycling system has shorted out","Our navcomp is freaking out","Our systems are glitching out","We just got caught in a solar flare","We had a close call with an asteroid","We have a minor [pick("fuel","water","oxygen","gas")] leak","We have depressurized compartments","We have a hull breach","Our shield generator is on the fritz","Our RCS is acting up","One of our [pick("hydraulic","pneumatic")] systems has depressurized","Our repair bots are malfunctioning") var/damagestate = pick("We've experienced some hull damage","We're suffering minor system malfunctions","We're having some technical issues","We're overdue maintenance","We have several minor space debris impacts","We've got some battle damage here","Our reactor output is fluctuating","We're hearing some weird noises from the [pick("engines","pipes","ducting","HVAC")]","Our artificial gravity generator has failed","Our life support is failing","Our environmental controls are busted","Our water recycling system has shorted out","Our navcomp is freaking out","Our systems are glitching out","We just got caught in a solar flare","We had a close call with an asteroid","We have a minor [pick("fuel","water","oxygen","gas")] leak","We have depressurized compartments","We have a hull breach","Our shield generator is on the fritz","Our RCS is acting up","One of our [pick("hydraulic","pneumatic")] systems has depressurized","Our repair bots are malfunctioning")
var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you")
var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.")
msg("[callname], this is [combined_first_name]. [damagestate]. Requesting permission to [landing_short] for repairs and maintenance.","[prefix] [shipname]") msg("[callname], this is [combined_first_name]. [damagestate]. Requesting permission to [landing_short] for repairs and maintenance.","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Repair crews are standing by, contact them on channel [engchannel].") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Repair crews are standing by, contact them on channel [engchannel].")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[source_prefix] [source_shipname]")
//Ship event: docking request (medical) //Ship event: docking request (medical)
if("dockingrequestmedical") if("dockingrequestmedical")
var/medicalstate = pick("multiple casualties","several cases of radiation sickness","an unknown virus","an unknown infection","a critically injured VIP","sick refugees","multiple cases of food poisoning","injured passengers","sick passengers","injured engineers","wounded marines","a delicate situation","a pregnant passenger","injured castaways","recovered escape pods","unknown escape pods") var/medicalstate = pick("multiple casualties","several cases of radiation sickness","an unknown virus","an unknown infection","a critically injured VIP","sick refugees","multiple cases of food poisoning","injured passengers","sick passengers","injured engineers","wounded marines","a delicate situation","a pregnant passenger","injured castaways","recovered escape pods","unknown escape pods")
var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you")
var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.")
msg("[callname], this is [combined_first_name]. We have [medicalstate] on board. Requesting permission to [landing_short] for medical assistance.","[prefix] [shipname]") msg("[callname], this is [combined_first_name]. We have [medicalstate] on board. Requesting permission to [landing_short] for medical assistance.","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Medtechs are standing by, contact them on channel [medchannel].") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Medtechs are standing by, contact them on channel [medchannel].")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[source_prefix] [source_shipname]")
//Ship event: docking request (security) //Ship event: docking request (security)
if("dockingrequestsecurity") if("dockingrequestsecurity")
var/species = pick("human","unathi","lizard","tajaran","feline","skrell","akula","promethean","sergal","synthetic","robotic","teshari","avian","vulpkanin","canine","vox","zorren","hybrid","mixed-species","vox","grey","alien") var/species = pick("human","unathi","lizard","tajaran","feline","skrell","akula","promethean","sergal","synthetic","robotic","teshari","avian","vulpkanin","canine","vox","zorren","hybrid","mixed-species","vox","grey","alien")
var/securitystate = pick("several [species] convicts","a captured pirate","a wanted criminal","[species] stowaways","incompetent [species] shipjackers","a delicate situation","a disorderly passenger","disorderly [species] passengers","ex-mutineers","a captured vox marauder","captured vox marauders","stolen goods","a container full of confiscated contraband","containers full of confiscated contraband",5;"a very lost shadekin",5;"a raging case of [pick("spiders","crabs")]") //gotta have a little something to lighten the mood now and then var/securitystate = pick("several [species] convicts","a captured pirate","a wanted criminal","[species] stowaways","incompetent [species] shipjackers","a delicate situation","a disorderly passenger","disorderly [species] passengers","ex-mutineers","a captured vox marauder","captured vox marauders","stolen goods","a container full of confiscated contraband","containers full of confiscated contraband",5;"a very lost shadekin",5;"a raging case of [pick("spiders","crabs")]") //gotta have a little something to lighten the mood now and then
var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","Perfect, thank you") var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","Perfect, thank you")
var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.")
msg("[callname], this is [combined_first_name]. We have [securitystate] on board and require security assistance. Requesting permission to [landing_short].","[prefix] [shipname]") msg("[callname], this is [combined_first_name]. We have [securitystate] on board and require security assistance. Requesting permission to [landing_short].","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Security teams are standing by, contact them on channel [secchannel].") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Security teams are standing by, contact them on channel [secchannel].")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") msg("[appreciation], [GLOB.using_map.dock_name] Control. [dockingplan]","[source_prefix] [source_shipname]")
//Ship event: undocking request //Ship event: undocking request
if("undockingrequest") if("undockingrequest")
var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you") var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you")
var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too","So long") var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too","So long")
var/takeoff = pick("depart","launch") var/takeoff = pick("depart","launch")
msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[prefix] [shipname]") msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted. Docking clamps released. [safetravels].") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted. Docking clamps released. [safetravels].")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[thanks], [GLOB.using_map.dock_name] Control. This is [combined_first_name] setting course for [destname], out.","[prefix] [shipname]") msg("[thanks], [GLOB.using_map.dock_name] Control. This is [combined_first_name] setting course for [source_destname], out.","[source_prefix] [source_shipname]")
//SDF event: starting patrol //SDF event: starting patrol
if("sdfbeginpatrol") if("sdfbeginpatrol")
var/safetravels = pick("Fly safe out there","Good luck","Good hunting","Safe travels","Godspeed","Stars guide you") var/safetravels = pick("Fly safe out there","Good luck","Good hunting","Safe travels","Godspeed","Stars guide you")
var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too") var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too")
var/takeoff = pick("depart","launch","take off","dust off") var/takeoff = pick("depart","launch","take off","dust off")
msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone] to begin system patrol.","[prefix] [shipname]") msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone] to begin system patrol.","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted. Docking clamps released. [safetravels].") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Permission granted. Docking clamps released. [safetravels].")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[thanks], [GLOB.using_map.dock_name] Control. This is [combined_first_name] beginning system patrol, out.","[prefix] [shipname]") msg("[thanks], [GLOB.using_map.dock_name] Control. This is [combined_first_name] beginning system patrol, out.","[source_prefix] [source_shipname]")
//Ship event: undocking request (denied) //Ship event: undocking request (denied)
if("undockingdenied") if("undockingdenied")
var/takeoff = pick("depart","launch") var/takeoff = pick("depart","launch")
var/denialreason = pick("Security is requesting a full cargo inspection","Your ship has been impounded for multiple [pick("security","safety")] violations","Your ship is currently under quarantine lockdown","We have reason to believe there's an issue with your papers","Security personnel are currently searching for a fugitive and have ordered all outbound ships remain grounded until further notice") var/denialreason = pick("Security is requesting a full cargo inspection","Your ship has been impounded for multiple [pick("security","safety")] violations","Your ship is currently under quarantine lockdown","We have reason to believe there's an issue with your papers","Security personnel are currently searching for a fugitive and have ordered all outbound ships remain grounded until further notice")
msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[prefix] [shipname]") msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("Negative [combined_first_name], request denied. [denialreason].") msg("Negative [combined_first_name], request denied. [denialreason].")
//Ship event: undocking request (delayed) //Ship event: undocking request (delayed)
@@ -379,31 +423,31 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller
var/takeoff = pick("depart","launch") var/takeoff = pick("depart","launch")
var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you") var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you")
var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too","So long") var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too","So long")
msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[prefix] [shipname]") msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("Negative [combined_first_name], request denied. [denialreason]. Try again in three minutes.") msg("Negative [combined_first_name], request denied. [denialreason]. Try again in three minutes.")
sleep(180 SECONDS) //yes, three minutes sleep(180 SECONDS) //yes, three minutes
msg("[callname], this is [combined_first_name], re-requesting permission to depart from [landing_zone].","[prefix] [shipname]") msg("[callname], this is [combined_first_name], re-requesting permission to depart from [landing_zone].","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Everything appears to be in order now, permission granted. Docking clamps released. [safetravels].") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control. Everything appears to be in order now, permission granted. Docking clamps released. [safetravels].")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[thanks], [GLOB.using_map.dock_name] Control. This is [combined_first_name] setting course for [destname], out.","[prefix] [shipname]") msg("[thanks], [GLOB.using_map.dock_name] Control. This is [combined_first_name] setting course for [source_destname], out.","[source_prefix] [source_shipname]")
else //time for generic message else //time for generic message
msg("[callname], this is [combined_first_name] on [mission] [pick(mission_noun)] to [destname], requesting [request].","[prefix] [shipname]") msg("[callname], this is [combined_first_name] on [source_mission] [pick(mission_noun)] to [source_destname], requesting [request].","[source_prefix] [source_shipname]")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control, [response].") msg("[combined_first_name], this is [GLOB.using_map.dock_name] Control, [response].")
sleep(5 SECONDS) sleep(5 SECONDS)
msg("[GLOB.using_map.dock_name] Control, [yes ? "thank you" : "understood"], out.","[prefix] [shipname]") msg("[GLOB.using_map.dock_name] Control, [yes ? "thank you" : "understood"], out.","[source_prefix] [source_shipname]")
return //oops, forgot to restore this return //oops, forgot to restore this
/* //OLD BLOCK, for reference /* //OLD BLOCK, for reference
//Ship sends request to ATC //Ship sends request to ATC
msg(full_request,"[prefix] [shipname]" msg(full_request,"[source_prefix] [source_shipname]"
sleep(5 SECONDS) sleep(5 SECONDS)
//ATC sends response to ship //ATC sends response to ship
msg(full_response) msg(full_response)
sleep(5 SECONDS) sleep(5 SECONDS)
//Ship sends response to ATC //Ship sends response to ATC
msg(full_closure,"[prefix] [shipname]") msg(full_closure,"[source_prefix] [source_shipname]")
return return
*/ */

View File

@@ -1,13 +1,12 @@
//I AM THE LOREMASTER, ARE YOU THE GATEKEEPER? //I AM THE LOREMASTER, ARE YOU THE GATEKEEPER?
var/datum/lore/loremaster/loremaster = new/datum/lore/loremaster GLOBAL_DATUM_INIT(loremaster, /datum/lore/loremaster, new)
/datum/lore/loremaster /datum/lore/loremaster
var/list/organizations = list() var/list/organizations = list()
/datum/lore/loremaster/New() /datum/lore/loremaster/New()
var/list/paths = subtypesof(/datum/lore/organization)
var/list/paths = typesof(/datum/lore/organization) - /datum/lore/organization
for(var/path in paths) for(var/path in paths)
// Some intermediate paths are not real organizations (ex. /datum/lore/organization/mil). Only do ones with names // Some intermediate paths are not real organizations (ex. /datum/lore/organization/mil). Only do ones with names
var/datum/lore/organization/instance = path var/datum/lore/organization/instance = path

View File

@@ -1,115 +1,122 @@
//Datums for different companies that can be used by busy_space //Datums for different companies that can be used by busy_space
/datum/lore/organization /datum/lore/organization
var/name = "" // Organization's name /// Organization's name
var/short_name = "" // Organization's shortname (NanoTrasen for "NanoTrasen Incorporated") var/name = ""
var/acronym = "" // Organization's acronym, e.g. 'NT' for NanoTrasen'. /// Organization's shortname (NanoTrasen for "NanoTrasen Incorporated")
var/desc = "" // One or two paragraph description of the organization, but only current stuff. Currently unused. var/short_name = ""
var/history = "" // Historical discription of the organization's origins Currently unused. /// Organization's acronym, e.g. 'NT' for NanoTrasen'.
var/work = "" // Short description of their work, eg "an arms manufacturer" var/acronym = ""
var/headquarters = "" // Location of the organization's HQ. Currently unused. /// One or two paragraph description of the organization, but only current stuff. Currently unused.
var/motto = "" // A motto/jingle/whatever, if they have one. Currently unused. var/desc = ""
/// Historical discription of the organization's origins Currently unused.
var/history = ""
/// Short description of their work, eg "an arms manufacturer"
var/work = ""
/// Location of the organization's HQ. Currently unused.
var/headquarters = ""
/// A motto/jingle/whatever, if they have one. Currently unused.
var/motto = ""
var/list/ship_prefixes = list() //Some might have more than one! Like NanoTrasen. Value is the mission they perform, e.g. ("ABC" = "mission desc") /// Some might have more than one! Like NanoTrasen. Value is the mission they perform, e.g. ("ABC" = "mission desc")
var/complex_tasks = FALSE //enables complex task generation var/list/ship_prefixes = list()
/// Enables complex task generation
var/complex_tasks = FALSE
//how does it work? simple: if you have complex tasks enabled, it goes; PREFIX + TASK_TYPE + FLIGHT_TYPE //how does it work? simple: if you have complex tasks enabled, it goes; PREFIX + TASK_TYPE + FLIGHT_TYPE
//e.g. NDV = Asset Protection + Patrol + Flight //e.g. NDV = Asset Protection + Patrol + Flight
//this allows you to use the ship prefix for subfactions (warbands, religions, whatever) within a faction, and define task_types at the faction level //this allows you to use the ship prefix for subfactions (warbands, religions, whatever) within a faction, and define task_types at the faction level
//task_types are picked from completely at random in air_traffic.dm, much like flight_types, so be careful not to potentially create combos that make no sense! //task_types are picked from completely at random in air_traffic.dm, much like flight_types, so be careful not to potentially create combos that make no sense!
var/list/task_types = list( var/list/task_types = list(
"logistics", "logistics", "patrol", "training",
"patrol", "peacekeeping", "escort", "search and rescue"
"training", )
"peacekeeping", /// Operations and flights - we can override this if we want to remove the military-sounding ones or add our own
"escort", var/list/flight_types = list(
"search and rescue" "flight", "mission", "route", "assignment"
) )
/// Names of spaceships. This is a mostly generic list that all the other organizations inherit from if they don't have anything better.
var/list/flight_types = list( //operations and flights - we can override this if we want to remove the military-sounding ones or add our own var/list/ship_names = list(
"flight", "Scout", "Beacon", "Signal", "Freedom", "Liberty", "Enterprise",
"mission", "Glory", "Axiom", "Eternal", "Harmony", "Light", "Discovery",
"route", "Endeavour", "Explorer", "Swift", "Dragonfly", "Ascendant", "Tenacious",
"assignment" "Pioneer", "Surveyor", "Haste", "Radiant", "Luminous", "Calypso", "Eclipse",
) "Maverick", "Polaris", "Orion", "Odyssey", "Relentless", "Valor", "Zodiac",
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. "Avenger", "Defiant", "Dauntless", "Interceptor", "Providence",
"Scout", "Thunderchild", "Defender", "Ranger", "River", "Jubilee"
"Beacon", )
"Signal", /// Names of static holdings that the organization's ships visit regularly.
"Freedom", var/list/destination_names = list()
"Liberty", /// Are we exempt from routine inspections? to avoid incidents where SysDef appears to go rogue -- defaults to TRUE now
"Enterprise", var/lawful = TRUE
"Glory", /// Are we explicitly lawless, hostile, or otherwise bad? allows for a finer alignment system, since my last checks weren't working properly
"Axiom", var/hostile = FALSE
"Eternal", /// Are we the space cops?
"Harmony", var/sysdef = FALSE
"Light", /// Pad the destination lists with some extra random ones?
"Discovery", var/autogenerate_destination_names = TRUE
"Endeavour",
"Explorer",
"Swift",
"Dragonfly",
"Ascendant",
"Tenacious",
"Pioneer",
"Surveyor",
"Haste",
"Radiant",
"Luminous",
"Calypso",
"Eclipse",
"Maverick",
"Polaris",
"Orion",
"Odyssey",
"Relentless",
"Valor",
"Zodiac",
"Avenger",
"Defiant",
"Dauntless",
"Interceptor",
"Providence",
"Thunderchild",
"Defender",
"Ranger",
"River",
"Jubilee"
)
var/list/destination_names = list() //Names of static holdings that the organization's ships visit regularly.
var/lawful = TRUE //Are we exempt from routine inspections? to avoid incidents where SysDef appears to go rogue -- defaults to TRUE now
var/hostile = FALSE //Are we explicitly lawless, hostile, or otherwise bad? allows for a finer alignment system, since my last checks weren't working properly
var/sysdef = FALSE //Are we the space cops?
var/autogenerate_destination_names = TRUE //Pad the destination lists with some extra random ones?
/datum/lore/organization/New() /datum/lore/organization/New()
..()
if(autogenerate_destination_names) // Lets pad out the destination names. if(autogenerate_destination_names) // Lets pad out the destination names.
var/i = rand(7, 12) //was 6-10, now 7-12, slight increase for flavor, especially 'starved' lists var/i = rand(7, 12) //was 6-10, now 7-12, slight increase for flavor, especially 'starved' lists
//known planets and exoplanets, plus fictional ones /// known planets and exoplanets, plus fictional ones
var/list/planets = list("Earth", "Luna", "Mars", "Titan", "Europa", "Sif", "Kara", "Rota", "Root", "Toledo, New Ohio", "Meralar", "Adhomai", "Arion", "Arkas", "Orbitar", "Galileo", "Brahe", "Janssen", "Harriot", "Aegir", "Amateru", "Dagon", "Meztli", "Hypatia", "Dulcinea", "Rocinante", "Sancho", "Thestias", "Saffar", "Samh", "Majriti", "Draugr") var/list/planets = list(
"Earth", "Luna", "Mars", "Titan", "Europa", "Sif", "Kara", "Rota",
"Root", "Toledo, New Ohio", "Meralar", "Adhomai", "Arion", "Arkas",
"Orbitar", "Galileo", "Brahe", "Janssen", "Harriot", "Aegir",
"Amateru", "Dagon", "Meztli", "Hypatia", "Dulcinea", "Rocinante",
"Sancho", "Thestias", "Saffar", "Samh", "Majriti", "Draugr")
//existing systems, pruned for duplicates, includes systems that contain suspected or confirmed exoplanets /// existing systems, pruned for duplicates, includes systems that contain suspected or confirmed exoplanets
var/list/systems = list( var/list/systems = list(
"Sol", "Alpha Centauri", "Sirius", "Vega", "Tau Ceti", "Altair", "Zhu Que", "Oasis", "Vir", "Gavel", "Ganesha", "Saint Columbia", "Altair", "Sidhe", "New Ohio", "Parvati", "Mahi-Mahi", "Nyx", "New Seoul", "Kess-Gendar", "Raphael", "Phact", "El", "Eutopia", "Qerr'valis", "Qerrna-Lakirr", "Rarkajar", "Vazzend", "Thoth", "Jahan's Post", "Kauq'xum", "Silk", "New Singapore", "Stove", "Viola", "Love", "Isavau's Gamble", "Shelf", "deep space", "Epsilon Eridani", "Fomalhaut", "Mu Arae", "Pollux", "Wolf 359", "Ross 128", "Gliese 1061", "Luyten's Star", "Teegarden's Star", "Kapteyn", "Wolf 1061", "Aldebaran", "Proxima Centauri", "Kepler-90", "HD 10180", "HR 8832", "TRAPPIST-1", "55 Cancri", "Gliese 876", "Upsilon Andromidae", "Mu Arae", "WASP-47", "82 G. Eridani", "Rho Coronae Borealis", "Pi Mensae", "Beta Pictoris", "Gamma Librae", "Gliese 667 C", "Kapteyn", "LHS 1140", "New Ohio", "Samsara", "Angessa's Pearl") "Sol", "Alpha Centauri", "Sirius", "Vega", "Tau Ceti", "Zhu Que",
var/list/owners = list("a government", "a civilian", "a corporate", "a private", "an independent", "a mercenary", "a military", "a contracted") "Oasis", "Vir", "Gavel", "Ganesha", "Saint Columbia", "Altair",
var/list/purpose = list("an exploration", "a trade", "a research", "a survey", "a military", "a mercenary", "a corporate", "a civilian", "an independent") "Sidhe", "New Ohio", "Parvati", "Mahi-Mahi", "Nyx", "New Seoul",
"Kess-Gendar", "Raphael", "Phact", "El", "Eutopia", "Qerr'valis",
"Qerrna-Lakirr", "Rarkajar", "Vazzend", "Thoth", "Jahan's Post",
"Kauq'xum", "Silk", "New Singapore", "Stove", "Viola", "Love",
"Isavau's Gamble", "Shelf", "deep space", "Epsilon Eridani", "Fomalhaut",
"Mu Arae", "Pollux", "Wolf 359", "Ross 128", "Gliese 1061", "Luyten's Star",
"Teegarden's Star", "Kapteyn", "Wolf 1061", "Aldebaran", "Proxima Centauri",
"Kepler-90", "HD 10180", "HR 8832", "TRAPPIST-1", "55 Cancri", "Gliese 876",
"Upsilon Andromidae", "Mu Arae", "WASP-47", "82 G. Eridani",
"Rho Coronae Borealis", "Pi Mensae", "Beta Pictoris", "Gamma Librae",
"Gliese 667 C", "Kapteyn", "LHS 1140", "New Ohio", "Samsara", "Angessa's Pearl")
var/list/owners = list(
"a government", "a civilian", "a corporate", "a private",
"an independent", "a mercenary", "a military", "a contracted")
var/list/purpose = list(
"an exploration", "a trade", "a research", "a survey", "a military",
"a mercenary", "a corporate", "a civilian", "an independent")
//unique or special locations /// unique or special locations
var/list/unique = list("the Jovian subcluster") var/list/unique = list("the Jovian subcluster")
var/list/orbitals = list("[pick(owners)] shipyard","[pick(owners)] dockyard","[pick(owners)] station","[pick(owners)] vessel","a habitat","[pick(owners)] refinery","[pick(owners)] research facility","an industrial platform","[pick(owners)] installation") var/list/orbitals = list(
var/list/surface = list("a colony","a settlement","a trade outpost","[pick(owners)] supply depot","a fuel depot","[pick(owners)] installation","[pick(owners)] research facility") "[pick(owners)] shipyard", "[pick(owners)] dockyard", "[pick(owners)] station",
var/list/deepspace = list("[pick(owners)] asteroid base","a freeport","[pick(owners)] shipyard","[pick(owners)] dockyard","[pick(owners)] station","[pick(owners)] vessel","[pick(owners)] orbital habitat","an orbital refinery","a colony","a settlement","a trade outpost","[pick(owners)] supply depot","a fuel depot","[pick(owners)] installation","[pick(owners)] research facility") "[pick(owners)] vessel", "a habitat","[pick(owners)] refinery", "[pick(owners)] research facility",
var/list/frontier = list("[pick(purpose)] [pick("ship","vessel","outpost")]","a waystation","an outpost","a settlement","a colony") "an industrial platform", "[pick(owners)] installation")
var/list/surface = list(
"a colony","a settlement", "a trade outpost", "[pick(owners)] supply depot",
"a fuel depot", "[pick(owners)] installation", "[pick(owners)] research facility")
var/list/deepspace = list(
"[pick(owners)] asteroid base", "a freeport", "[pick(owners)] shipyard",
"[pick(owners)] dockyard", "[pick(owners)] station", "[pick(owners)] vessel",
"[pick(owners)] orbital habitat", "an orbital refinery", "a colony", "a settlement",
"a trade outpost", "[pick(owners)] supply depot", "a fuel depot", "[pick(owners)] installation",
"[pick(owners)] research facility")
var/list/frontier = list(
"[pick(purpose)] [pick("ship","vessel","outpost")]",
"a waystation","an outpost","a settlement","a colony"
)
//patterns; orbital ("an x orbiting y"), surface ("an x on y"), deep space ("an x in y"), the frontier ("an x on the frontier") //patterns; orbital ("an x orbiting y"), surface ("an x on y"), deep space ("an x in y"), the frontier ("an x on the frontier")
//biased towards inhabited space sites //biased towards inhabited space sites
while(i) while(i)
destination_names.Add("[pick("[pick(orbitals)] orbiting [pick(planets)]","[pick(surface)] on [pick(planets)]","[pick(deepspace)] in [pick(systems)]",20;"[pick(unique)]",30;"[pick(frontier)] on the frontier")]")
i-- i--
//extensive rework for a much greater degree of variety compared to the old system, lists now include known exoplanets and star systems currently suspected or confirmed to have exoplanets destination_names.Add("[pick("[pick(orbitals)] orbiting [pick(planets)]","[pick(surface)] on [pick(planets)]","[pick(deepspace)] in [pick(systems)]",20;"[pick(unique)]",30;"[pick(frontier)] on the frontier")]")
//extensive rework for a much greater degree of variety compared to the old system, lists now include known exoplanets and star systems currently suspected or confirmed to have exoplanets
////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////
@@ -129,57 +136,23 @@
NT's most well known products are its phoron based creations, especially those used in Cryotherapy. \ NT's most well known products are its phoron based creations, especially those used in Cryotherapy. \
It also boasts an prosthetic line, which is provided to its employees as needed, and is used as an incentive \ It also boasts an prosthetic line, which is provided to its employees as needed, and is used as an incentive \
for newly tested posibrains to remain with the company." for newly tested posibrains to remain with the company."
history = "" // To be written someday.
work = "research giant" work = "research giant"
headquarters = "Luna, Sol" headquarters = "Luna, Sol"
motto = ""
ship_prefixes = list("NTV" = "a general operations", "NEV" = "an exploration", "NGV" = "a hauling", "NDV" = "a patrol", "NRV" = "an emergency response", "NDV" = "an asset protection") ship_prefixes = list("NTV" = "a general operations", "NEV" = "an exploration", "NGV" = "a hauling", "NDV" = "a patrol", "NRV" = "an emergency response", "NDV" = "an asset protection")
//Scientist naming scheme /// Scientist naming scheme
ship_names = list( ship_names = list(
"Bardeen", "Bardeen", "Einstein", "Feynman", "Sagan", "Tyson", "Galilei",
"Einstein", "Jans", "Fhriede", "Franklin", "Tesla", "Curie", "Darwin",
"Feynman", "Newton", "Pasteur", "Bell", "Mendel", "Kepler", "Edison",
"Sagan", "Cavendish", "Nye", "Hawking", "Aristotle", "Von Braun", "Kaku",
"Tyson", "Oppenheimer", "Renwick", "Hubble", "Alcubierre", "Robineau", "Glass")
"Galilei", /// Note that the current station being used will be pruned from this list upon being instantiated
"Jans",
"Fhriede",
"Franklin",
"Tesla",
"Curie",
"Darwin",
"Newton",
"Pasteur",
"Bell",
"Mendel",
"Kepler",
"Edison",
"Cavendish",
"Nye",
"Hawking",
"Aristotle",
"Von Braun",
"Kaku",
"Oppenheimer",
"Renwick",
"Hubble",
"Alcubierre",
"Robineau",
"Glass"
)
// Note that the current station being used will be pruned from this list upon being instantiated
destination_names = list( destination_names = list(
"NT HQ on Luna", "NT HQ on Luna", "NSS Exodus in Nyx", "NCS Northern Star in Vir",
"NSS Exodus in Nyx", "NLS Southern Cross in Vir", "NAS Vir Central Command",
"NCS Northern Star in Vir", "a dockyard orbiting Sif", "an asteroid orbiting Kara",
"NLS Southern Cross in Vir", "an asteroid orbiting Rota", "Vir Interstellar Spaceport")
"NAS Vir Central Command",
"a dockyard orbiting Sif",
"an asteroid orbiting Kara",
"an asteroid orbiting Rota",
"Vir Interstellar Spaceport"
)
/datum/lore/organization/tsc/nanotrasen/New() /datum/lore/organization/tsc/nanotrasen/New()
..() ..()
@@ -198,96 +171,31 @@
from corporate politics. They enforce their neutrality with the help of a fairly large asset-protection contingent which \ from corporate politics. They enforce their neutrality with the help of a fairly large asset-protection contingent which \
prevents any contracting polities from using their own materiel against them. SolGov itself is one of Hephaestus' largest \ prevents any contracting polities from using their own materiel against them. SolGov itself is one of Hephaestus' largest \
bulk contractors owing to the above factors." bulk contractors owing to the above factors."
history = ""
work = "arms manufacturer" work = "arms manufacturer"
headquarters = "Luna, Sol" headquarters = "Luna, Sol"
motto = ""
ship_prefixes = list("HIV" = "a general operations", "HTV" = "a freight", "HLV" = "a munitions resupply", "HDV" = "an asset protection", "HDV" = "a preemptive deployment") ship_prefixes = list("HIV" = "a general operations", "HTV" = "a freight", "HLV" = "a munitions resupply", "HDV" = "an asset protection", "HDV" = "a preemptive deployment")
//War God Theme, updated //War God Theme, updated
ship_names = list( ship_names = list(
"Anhur", "Anhur", "Bast", "Horus", "Maahes", "Neith", "Pakhet",
"Bast", "Sekhmet", "Set", "Sobek", "Maher", "Kokou", "Ogoun",
"Horus", "Oya", "Kovas", "Agrona", "Andraste", "Anann", "Badb",
"Maahes", "Belatucadros", "Cicolluis", "Macha", "Neit", "Nemain",
"Neith", "Rudianos", "Chiyou", "Guan Yu", "Jinzha", "Nezha",
"Pakhet", "Zhao Lang", "Laran", "Menrva", "Tyr", "Woden", "Freya",
"Sekhmet", "Odin", "Ullr", "Ares", "Deimos", "Enyo", "Kratos", "Kartikeya",
"Set", "Mangala", "Parvati", "Shiva", "Vishnu", "Shaushka", "Wurrukatte",
"Sobek", "Hadur", "Futsunushi", "Sarutahiko", "Takemikazuchi", "Neto",
"Maher", "Agasaya", "Belus", "Ishtar", "Shala", "Huitzilopochtli",
"Kokou", "Tlaloc", "Xipe-Totec", "Qamaits", "'Oro", "Rongo", "Ku",
"Ogoun", "Pele", "Maru", "Tumatauenga", "Bellona", "Juno", "Mars",
"Oya", "Minerva", "Victoria", "Anat", "Astarte", "Perun", "Cao Lo")
"Kovas",
"Agrona",
"Andraste",
"Anann",
"Badb",
"Belatucadros",
"Cicolluis",
"Macha",
"Neit",
"Nemain",
"Rudianos",
"Chiyou",
"Guan Yu",
"Jinzha",
"Nezha",
"Zhao Lang",
"Laran",
"Menrva",
"Tyr",
"Woden",
"Freya",
"Odin",
"Ullr",
"Ares",
"Deimos",
"Enyo",
"Kratos",
"Kartikeya",
"Mangala",
"Parvati",
"Shiva",
"Vishnu",
"Shaushka",
"Wurrukatte",
"Hadur",
"Futsunushi",
"Sarutahiko",
"Takemikazuchi",
"Neto",
"Agasaya",
"Belus",
"Ishtar",
"Shala",
"Huitzilopochtli",
"Tlaloc",
"Xipe-Totec",
"Qamaits",
"'Oro",
"Rongo",
"Ku",
"Pele",
"Maru",
"Tumatauenga",
"Bellona",
"Juno",
"Mars",
"Minerva",
"Victoria",
"Anat",
"Astarte",
"Perun",
"Cao Lo"
)
destination_names = list( destination_names = list(
"our headquarters on Luna", "our headquarters on Luna",
"a SolGov dockyard on Luna", "a SolGov dockyard on Luna",
"a Fleet outpost in the Almach Rim", "a Fleet outpost in the Almach Rim",
"a Fleet outpost on the Moghes border" "a Fleet outpost on the Moghes border"
) )
/datum/lore/organization/tsc/vey_med /datum/lore/organization/tsc/vey_med
name = "Vey-Medical" //The Wiki displays them as Vey-Medical. name = "Vey-Medical" //The Wiki displays them as Vey-Medical.
@@ -300,39 +208,27 @@
human-like FBP designs. Vey's rise to stardom came from their introduction of resurrective cloning, although in \ human-like FBP designs. Vey's rise to stardom came from their introduction of resurrective cloning, although in \
recent years they've been forced to diversify as their patents expired and NanoTrasen-made medications became \ recent years they've been forced to diversify as their patents expired and NanoTrasen-made medications became \
essential to modern cloning." essential to modern cloning."
history = ""
work = "medical equipment supplier" work = "medical equipment supplier"
headquarters = "Toledo, New Ohio" headquarters = "Toledo, New Ohio"
motto = ""
ship_prefixes = list("VMV" = "a general operations", "VTV" = "a transportation", "VHV" = "a medical resupply", "VSV" = "a research", "VRV" = "an emergency medical support") ship_prefixes = list("VMV" = "a general operations", "VTV" = "a transportation", "VHV" = "a medical resupply", "VSV" = "a research", "VRV" = "an emergency medical support")
// Diona names // Diona names
ship_names = list( ship_names = list(
"Wind That Stirs The Waves", "Wind That Stirs The Waves", "Sustained Note Of Metal",
"Sustained Note Of Metal", "Bright Flash Reflecting Off Glass", "Veil Of Mist Concealing The Rock",
"Bright Flash Reflecting Off Glass", "Thin Threads Intertwined", "Clouds Drifting Amid Storm",
"Veil Of Mist Concealing The Rock", "Loud Note And Breaking", "Endless Vistas Expanding Before The Void",
"Thin Threads Intertwined", "Fire Blown Out By Wind", "Star That Fades From View",
"Clouds Drifting Amid Storm", "Eyes Which Turn Inwards", "Joy Without Which The World Would Come Undone",
"Loud Note And Breaking", "A Thousand Thousand Planets Dangling From Branches",
"Endless Vistas Expanding Before The Void", "Light Streaming Through Interminable Branches",
"Fire Blown Out By Wind", "Smoke Brought Up From A Terrible Fire", "Light of Qerr'Valis",
"Star That Fades From View", "King Xae'uoque", "Memory of Kel'xi", "Xi'Kroo's Herald")
"Eyes Which Turn Inwards",
"Joy Without Which The World Would Come Undone",
"A Thousand Thousand Planets Dangling From Branches",
"Light Streaming Through Interminable Branches",
"Smoke Brought Up From A Terrible Fire",
"Light of Qerr'Valis",
"King Xae'uoque",
"Memory of Kel'xi",
"Xi'Kroo's Herald"
)
destination_names = list( destination_names = list(
"our headquarters on Toledo, New Ohio", "our headquarters on Toledo, New Ohio",
"a research facility in Samsara", "a research facility in Samsara",
"a sapientarian mission in the Almach Rim" "a sapientarian mission in the Almach Rim"
) )
/datum/lore/organization/tsc/zeng_hu /datum/lore/organization/tsc/zeng_hu
name = "Zeng-Hu Pharmaceuticals" name = "Zeng-Hu Pharmaceuticals"
@@ -344,73 +240,21 @@
on phoron research cuts into their R&D and Vey-Med's superior medical equipment effectively decimated their own equipment \ on phoron research cuts into their R&D and Vey-Med's superior medical equipment effectively decimated their own equipment \
interests. The three-way rivalry between these companies for dominance in the medical field is well-known and a matter of \ interests. The three-way rivalry between these companies for dominance in the medical field is well-known and a matter of \
constant economic speculation." constant economic speculation."
history = ""
work = "pharmaceuticals company" work = "pharmaceuticals company"
headquarters = "Earth, Sol" headquarters = "Earth, Sol"
motto = ""
ship_prefixes = list("ZHV" = "a general operations", "ZTV" = "a transportation", "ZMV" = "a medical resupply", "ZRV" = "a medical research") ship_prefixes = list("ZHV" = "a general operations", "ZTV" = "a transportation", "ZMV" = "a medical resupply", "ZRV" = "a medical research")
//ship names: a selection of famous physicians who advanced the cause of medicine //ship names: a selection of famous physicians who advanced the cause of medicine
ship_names = list( ship_names = list(
"Averroes", "Averroes", "Avicenna", "Banting", "Billroth", "Blackwell", "Blalock",
"Avicenna", "Charaka", "Chauliac", "Cushing", "Domagk", "Galen", "Fauchard", "Favaloro",
"Banting", "Fleming", "Fracastoro", "Goodfellow", "Gray", "Harvey", "Heimlich",
"Billroth", "Hippocrates", "Hunter", "Isselbacher", "Jenner", "Joslin", "Kocher", "Laennec",
"Blackwell", "Lane-Claypon", "Lister", "Lower", "Madhav", "Maimonides", "Marshall", "Mayo",
"Blalock", "Meyerhof", "Minot", "Morton", "Needleman", "Nicolle", "Osler", "Penfield",
"Charaka", "Raichle", "Ransohoff", "Rhazes", "Semmelweis", "Starzl", "Still", "Susruta",
"Chauliac", "Urbani", "Vesalius", "Vidius", "Whipple", "White", "Worcestor", "Yegorov", "Xichun")
"Cushing", destination_names = list("our headquarters on Earth")
"Domagk",
"Galen",
"Fauchard",
"Favaloro",
"Fleming",
"Fracastoro",
"Goodfellow",
"Gray",
"Harvey",
"Heimlich",
"Hippocrates",
"Hunter",
"Isselbacher",
"Jenner",
"Joslin",
"Kocher",
"Laennec",
"Lane-Claypon",
"Lister",
"Lower",
"Madhav",
"Maimonides",
"Marshall",
"Mayo",
"Meyerhof",
"Minot",
"Morton",
"Needleman",
"Nicolle",
"Osler",
"Penfield",
"Raichle",
"Ransohoff",
"Rhazes",
"Semmelweis",
"Starzl",
"Still",
"Susruta",
"Urbani",
"Vesalius",
"Vidius",
"Whipple",
"White",
"Worcestor",
"Yegorov",
"Xichun"
)
destination_names = list(
"our headquarters on Earth"
)
/datum/lore/organization/tsc/ward_takahashi /datum/lore/organization/tsc/ward_takahashi
name = "Ward-Takahashi General Manufacturing Conglomerate" name = "Ward-Takahashi General Manufacturing Conglomerate"
@@ -422,45 +266,16 @@
led to their tertiary interest in the development and sale of high-grade AI systems. Ward-Takahashi's economies \ 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." consumer electronics market."
history = ""
work = "electronics manufacturer" work = "electronics manufacturer"
headquarters = ""
motto = ""
ship_prefixes = list("WTV" = "a general operations", "WTFV" = "a freight", "WTGV" = "a transport", "WTDV" = "an asset protection") ship_prefixes = list("WTV" = "a general operations", "WTFV" = "a freight", "WTGV" = "a transport", "WTDV" = "an asset protection")
ship_names = list( ship_names = list(
"Comet", "Comet", "Meteor", "Heliosphere", "Bolide", "Aurora", "Nova",
"Meteor", "Supernova", "Nebula", "Galaxy", "Starburst", "Constellation",
"Heliosphere", "Pulsar", "Quark", "Void", "Asteroid", "Wormhole", "Sunspot",
"Bolide", "Supercluster", "Supergiant", "Protostar", "Magnetar", "Moon",
"Aurora", "Supermoon", "Anomaly", "Drift", "Stream", "Rift", "Curtain",
"Nova", "Planetar", "Quasar", "Binary")
"Supernova",
"Nebula",
"Galaxy",
"Starburst",
"Constellation",
"Pulsar",
"Quark",
"Void",
"Asteroid",
"Wormhole",
"Sunspot",
"Supercluster",
"Supergiant",
"Protostar",
"Magnetar",
"Moon",
"Supermoon",
"Anomaly",
"Drift",
"Stream",
"Rift",
"Curtain",
"Planetar",
"Quasar",
"Binary"
)
destination_names = list() destination_names = list()
/datum/lore/organization/tsc/bishop /datum/lore/organization/tsc/bishop
@@ -473,70 +288,21 @@
it a reputation for high price and luxury, with Bishop cyberware often rivalling Vey-Med's for cost. Bishop's reputation \ it a reputation for high price and luxury, with Bishop cyberware often rivalling Vey-Med's for cost. Bishop's reputation \
for catering towards the interests of human augmentation enthusiasts instead of positronics have earned it ire from the \ for catering towards the interests of human augmentation enthusiasts instead of positronics have earned it ire from the \
Positronic Rights Group and puts it in ideological (but not economic) comptetition with Morpheus Cyberkinetics." Positronic Rights Group and puts it in ideological (but not economic) comptetition with Morpheus Cyberkinetics."
history = ""
work = "cybernetics and augmentation manufacturer" work = "cybernetics and augmentation manufacturer"
headquarters = ""
motto = ""
ship_prefixes = list("BCV" = "a general operations", "BCTV" = "a transportation", "BCSV" = "a research exchange") ship_prefixes = list("BCV" = "a general operations", "BCTV" = "a transportation", "BCSV" = "a research exchange")
//famous mechanical engineers //famous mechanical engineers
ship_names = list( ship_names = list(
"Al-Jazari", "Al-Jazari", "Al-Muradi", "Al-Zarqali", "Archimedes", "Arkwright",
"Al-Muradi", "Armstrong", "Babbage", "Barsanti", "Benz", "Bessemer", "Bramah",
"Al-Zarqali", "Brunel", "Cardano", "Cartwright", "Cayley", "Clement", "Leonardo da Vinci",
"Archimedes", "Diesel", "Drebbel", "Fairbairn", "Fontana", "Fourneyron", "Fulton",
"Arkwright", "Fung", "Gantt", "Garay", "Hackworth", "Harrison", "Hornblower",
"Armstrong", "Jacquard", "Jendrassik", "Leibniz", "Ma Jun", "Maudslay", "Metzger",
"Babbage", "Murdoch", "Nasmyth", "Parsons", "Rankine", "Reynolds", "Roberts",
"Barsanti", "Scheutz", "Sikorsky", "Somerset", "Stephenson", "Stirling", "Tesla",
"Benz", "Vaucanson", "Vishweswarayya", "Wankel", "Watt", "Wiberg")
"Bessemer", destination_names = list("a medical facility in Angessa's Pearl")
"Bramah",
"Brunel",
"Cardano",
"Cartwright",
"Cayley",
"Clement",
"Leonardo da Vinci",
"Diesel",
"Drebbel",
"Fairbairn",
"Fontana",
"Fourneyron",
"Fulton",
"Fung",
"Gantt",
"Garay",
"Hackworth",
"Harrison",
"Hornblower",
"Jacquard",
"Jendrassik",
"Leibniz",
"Ma Jun",
"Maudslay",
"Metzger",
"Murdoch",
"Nasmyth",
"Parsons",
"Rankine",
"Reynolds",
"Roberts",
"Scheutz",
"Sikorsky",
"Somerset",
"Stephenson",
"Stirling",
"Tesla",
"Vaucanson",
"Vishweswarayya",
"Wankel",
"Watt",
"Wiberg"
)
destination_names = list(
"a medical facility in Angessa's Pearl"
)
/datum/lore/organization/tsc/morpheus /datum/lore/organization/tsc/morpheus
name = "Morpheus Cyberkinetics" name = "Morpheus Cyberkinetics"
@@ -555,74 +321,24 @@
ship_prefixes = list("MCV" = "a general operations", "MTV" = "a freight", "MDV" = "a market protection", "MSV" = "an outreach") ship_prefixes = list("MCV" = "a general operations", "MTV" = "a freight", "MDV" = "a market protection", "MSV" = "an outreach")
//periodic elements; something 'unusual' for the posibrain TSC without being full on 'quirky' culture ship names (much as I love them, they're done to death) //periodic elements; something 'unusual' for the posibrain TSC without being full on 'quirky' culture ship names (much as I love them, they're done to death)
ship_names = list( ship_names = list(
"Hydrogen", "Hydrogen", "Helium", "Lithium", "Beryllium", "Boron", "Carbon", "Nitrogen",
"Helium", "Oxygen", "Fluorine", "Neon", "Sodium", "Magnesium", "Aluminium", "Silicon",
"Lithium", "Phosphorus", "Sulfur", "Chlorine", "Argon", "Potassium", "Calcium", "Scandium",
"Beryllium", "Titanium", "Vanadium", "Chromium", "Manganese", "Iron", "Cobalt", "Nickel",
"Boron", "Copper", "Zinc", "Gallium", "Germanium", "Arsenic", "Selenium", "Bromine",
"Carbon", "Krypton", "Rubidium", "Strontium", "Yttrium", "Zirconium", "Niobium", "Molybdenum",
"Nitrogen", "Technetium", "Ruthenium", "Rhodium", "Palladium", "Silver", "Cadmium", "Indium",
"Oxygen", "Tin", "Antimony", "Tellurium", "Iodine", "Xenon", "Caesium", "Barium")
"Fluorine",
"Neon",
"Sodium",
"Magnesium",
"Aluminium",
"Silicon",
"Phosphorus",
"Sulfur",
"Chlorine",
"Argon",
"Potassium",
"Calcium",
"Scandium",
"Titanium",
"Vanadium",
"Chromium",
"Manganese",
"Iron",
"Cobalt",
"Nickel",
"Copper",
"Zinc",
"Gallium",
"Germanium",
"Arsenic",
"Selenium",
"Bromine",
"Krypton",
"Rubidium",
"Strontium",
"Yttrium",
"Zirconium",
"Niobium",
"Molybdenum",
"Technetium",
"Ruthenium",
"Rhodium",
"Palladium",
"Silver",
"Cadmium",
"Indium",
"Tin",
"Antimony",
"Tellurium",
"Iodine",
"Xenon",
"Caesium",
"Barium"
)
//some hebrew alphabet destinations for a little extra unusualness //some hebrew alphabet destinations for a little extra unusualness
destination_names = list( destination_names = list(
"our headquarters in Shelf", "our headquarters in Shelf",
"a trade outpost in Shelf", "a trade outpost in Shelf",
"one of our factory complexes on Root", "one of our factory complexes on Root",
"research outpost Aleph", "research outpost Aleph",
"logistics depot Dalet", "logistics depot Dalet",
"research installation Zayin", "research installation Zayin",
"research base Tsadi", "research base Tsadi",
"manufacturing facility Samekh" "manufacturing facility Samekh")
)
/datum/lore/organization/tsc/xion /datum/lore/organization/tsc/xion
name = "Xion Manufacturing Group" name = "Xion Manufacturing Group"
@@ -640,45 +356,15 @@
ship_prefixes = list("XMV" = "a general operations", "XTV" = "a hauling", "XFV" = "a bulk transport", "XIV" = "a resupply") ship_prefixes = list("XMV" = "a general operations", "XTV" = "a hauling", "XFV" = "a bulk transport", "XIV" = "a resupply")
//martian mountains //martian mountains
ship_names = list( ship_names = list(
"Olympus Mons", "Olympus Mons", "Ascraeus Mons", "Arsia Mons", "Pavonis Mons",
"Ascraeus Mons", "Elysium Mons", "Hecates Tholus", "Albor Tholus", "Tharsis Tholus",
"Arsia Mons", "Biblis Tholus", "Alba Mons", "Ulysses Tholus", "Mount Sharp",
"Pavonis Mons", "Uranius Mons", "Anseris Mons", "Hadriacus Mons", "Euripus Mons",
"Elysium Mons", "Tyrrhenus Mons", "Promethei Mons", "Chronius Mons", "Apollinaris Mons",
"Hecates Tholus", "Gonnus Mons", "Syrtis Major Planum", "Amphitrites Patera", "Nili Patera",
"Albor Tholus", "Pityusa Patera", "Malea Patera", "Peneus Patera", "Labeatis Mons",
"Tharsis Tholus", "Issidon Paterae","Pindus Mons", "Meroe Patera", "Orcus Patera", "Oceanidum Mons",
"Biblis Tholus", "Horarum Mons", "Peraea Mons", "Octantis Mons", "Galaxius Mons", "Hellas Planitia")
"Alba Mons",
"Ulysses Tholus",
"Mount Sharp",
"Uranius Mons",
"Anseris Mons",
"Hadriacus Mons",
"Euripus Mons",
"Tyrrhenus Mons",
"Promethei Mons",
"Chronius Mons",
"Apollinaris Mons",
"Gonnus Mons",
"Syrtis Major Planum",
"Amphitrites Patera",
"Nili Patera",
"Pityusa Patera",
"Malea Patera",
"Peneus Patera",
"Labeatis Mons",
"Issidon Paterae",
"Pindus Mons",
"Meroe Patera",
"Orcus Patera",
"Oceanidum Mons",
"Horarum Mons",
"Peraea Mons",
"Octantis Mons",
"Galaxius Mons",
"Hellas Planitia"
)
destination_names = list() destination_names = list()
//Keek&Allakai&Peesh's new TSC //Keek&Allakai&Peesh's new TSC
@@ -701,17 +387,9 @@
..() ..()
var/i = 20 //give us twenty random names, antares has snowflake rng-ids var/i = 20 //give us twenty random names, antares has snowflake rng-ids
var/list/numbers = list( var/list/numbers = list(
"One", "One", "Two", "Three",
"Two", "Four", "Five", "Six",
"Three", "Seven", "Eight", "Nine", "Zero")
"Four",
"Five",
"Six",
"Seven",
"Eight",
"Nine",
"Zero"
)
while(i) while(i)
ship_names.Add("[pick(numbers)] [pick(numbers)] [pick(numbers)] [pick(numbers)]") ship_names.Add("[pick(numbers)] [pick(numbers)] [pick(numbers)] [pick(numbers)]")
i-- i--
@@ -722,40 +400,17 @@
acronym = "FTU" acronym = "FTU"
desc = "The Free Trade Union is different from other tran-stellars in that they are not just a company, but they are a big conglomerate of various traders and merchants from all over the galaxy. They control a sizable fleet of vessels of various sizes which are given autonomy from the central command to engage in trading. They also host a fleet of combat vessels which respond directly to the central command for defending traders when necessary. They are in control of many large scale trade stations across the known galaxy, even in non-human space. Generally, they are multi-purpose stations but they always keep areas filled with duty-free shops. Almost anything is sold there and products that are forbidden or have insanely high taxes in other places are generally sold in the duty-free shops at very cheap and low prices.<br><br>They are the creators of the Tradeband language, created specially for being a lingua franca where every merchant can understand each other independent of language or nationality." desc = "The Free Trade Union is different from other tran-stellars in that they are not just a company, but they are a big conglomerate of various traders and merchants from all over the galaxy. They control a sizable fleet of vessels of various sizes which are given autonomy from the central command to engage in trading. They also host a fleet of combat vessels which respond directly to the central command for defending traders when necessary. They are in control of many large scale trade stations across the known galaxy, even in non-human space. Generally, they are multi-purpose stations but they always keep areas filled with duty-free shops. Almost anything is sold there and products that are forbidden or have insanely high taxes in other places are generally sold in the duty-free shops at very cheap and low prices.<br><br>They are the creators of the Tradeband language, created specially for being a lingua franca where every merchant can understand each other independent of language or nationality."
history = "The Free Trade Union was created in 2410 by Issac Adler, a merchant, economist, and owner of a small fleet of ships. At this time the \"Free Merchants\" were in decay because of the high taxes and tariffs that were generally applied on the products that they tried to import or export. Another issue was that big trans-stellar corporations were constantly blocking their products to prospective buyers in order to form their monopolies. Issac decided to organize the \"Free Merchants\" into a legitimate organization to lobby and protest against the unfair practices of the major corporations and the governments that were in their pocket. At the same time, they wanted to organize and sell their things at better prices. The organization started relatively small but by 2450 it became one of the biggest conglomerates with a significant amount of the merchants of the galaxy being a part of the FTU. At the same time, the Free Trade Union started to popularize tradeband in the galaxy as the language of business. Around 2500, the majority of independent merchants were part of the FTU with significant influence on the galactic scale. They have started to invest in colonization efforts in order to take early claim of the frontier systems as the best choice for frontier traders." history = "The Free Trade Union was created in 2410 by Issac Adler, a merchant, economist, and owner of a small fleet of ships. At this time the \"Free Merchants\" were in decay because of the high taxes and tariffs that were generally applied on the products that they tried to import or export. Another issue was that big trans-stellar corporations were constantly blocking their products to prospective buyers in order to form their monopolies. Issac decided to organize the \"Free Merchants\" into a legitimate organization to lobby and protest against the unfair practices of the major corporations and the governments that were in their pocket. At the same time, they wanted to organize and sell their things at better prices. The organization started relatively small but by 2450 it became one of the biggest conglomerates with a significant amount of the merchants of the galaxy being a part of the FTU. At the same time, the Free Trade Union started to popularize tradeband in the galaxy as the language of business. Around 2500, the majority of independent merchants were part of the FTU with significant influence on the galactic scale. They have started to invest in colonization efforts in order to take early claim of the frontier systems as the best choice for frontier traders."
work = ""
headquarters = ""
motto = ""
ship_prefixes = list("FTV" = "a general operations", "FTRP" = "a trade protection", "FTRR" = "a piracy suppression", "FTLV" = "a logistical support", "FTTV" = "a mercantile", "FTDV" = "a market establishment") ship_prefixes = list("FTV" = "a general operations", "FTRP" = "a trade protection", "FTRR" = "a piracy suppression", "FTLV" = "a logistical support", "FTTV" = "a mercantile", "FTDV" = "a market establishment")
//famous merchants and traders, taken from Civ6's Great Merchants, plus the TSC's founder //famous merchants and traders, taken from Civ6's Great Merchants, plus the TSC's founder
ship_names = list( ship_names = list(
"Isaac Adler", "Isaac Adler", "Colaeus", "Marcus Licinius Crassus", "Zhang Qian",
"Colaeus", "Irene of Athens", "Marco Polo", "Piero de' Bardi", "Giovanni de' Medici",
"Marcus Licinius Crassus", "Jakob Fugger", "Raja Todar Mal", "Adam Smith", "John Jacob Astor",
"Zhang Qian", "John Spilsbury", "John Rockefeller", "Sarah Breedlove", "Mary Katherine Goddard",
"Irene of Athens", "Helena Rubenstein", "Levi Strauss", "Melitta Bentz", "Estee Lauder",
"Marco Polo", "Jamsetji Tata", "Masaru Ibuka",)
"Piero de' Bardi", destination_names = list("a Free Trade Union office", "FTU HQ")
"Giovanni de' Medici",
"Jakob Fugger",
"Raja Todar Mal",
"Adam Smith",
"John Jacob Astor",
"John Spilsbury",
"John Rockefeller",
"Sarah Breedlove",
"Mary Katherine Goddard",
"Helena Rubenstein",
"Levi Strauss",
"Melitta Bentz",
"Estee Lauder",
"Jamsetji Tata",
"Masaru Ibuka",
)
destination_names = list(
"a Free Trade Union office",
"FTU HQ"
)
/datum/lore/organization/tsc/mbt /datum/lore/organization/tsc/mbt
name = "Major Bill's Transportation" name = "Major Bill's Transportation"
@@ -770,70 +425,25 @@
ship_prefixes = list("TTV" = "a general operations", "TTV" = "a transport", "TTV" = "a luxury transit", "TTV" = "a priority transit", "TTV" = "a secure data courier") ship_prefixes = list("TTV" = "a general operations", "TTV" = "a transport", "TTV" = "a luxury transit", "TTV" = "a priority transit", "TTV" = "a secure data courier")
//ship names: big rivers //ship names: big rivers
ship_names = list ( ship_names = list (
"Nile", "Nile", "Kagera", "Nyabarongo", "Mwogo", "Rukarara", "Amazon", "Ucayali",
"Kagera", "Tambo", "Ene", "Mantaro", "Yangtze", "Mississippi", "Missouri", "Jefferson",
"Nyabarongo", "Beaverhead", "Red Rock", "Hell Roaring", "Yenisei", "Angara", "Yelenge",
"Mwogo", "Ider", "Ob", "Irtysh", "Rio de la Plata", "Parana", "Rio Grande", "Congo",
"Rukarara", "Chambeshi", "Amur", "Argun", "Kherlen", "Lena", "Mekong", "Mackenzie",
"Amazon", "Peace", "Finlay", "Niger", "Brahmaputra", "Tsangpo", "Murray", "Darling",
"Ucayali", "Culgoa", "Balonne", "Condamine", "Tocantins", "Araguaia", "Volga")
"Tambo",
"Ene",
"Mantaro",
"Yangtze",
"Mississippi",
"Missouri",
"Jefferson",
"Beaverhead",
"Red Rock",
"Hell Roaring",
"Yenisei",
"Angara",
"Yelenge",
"Ider",
"Ob",
"Irtysh",
"Rio de la Plata",
"Parana",
"Rio Grande",
"Congo",
"Chambeshi",
"Amur",
"Argun",
"Kherlen",
"Lena",
"Mekong",
"Mackenzie",
"Peace",
"Finlay",
"Niger",
"Brahmaputra",
"Tsangpo",
"Murray",
"Darling",
"Culgoa",
"Balonne",
"Condamine",
"Tocantins",
"Araguaia",
"Volga"
)
destination_names = list( destination_names = list(
"Major Bill's Transportation HQ on Mars", "Major Bill's Transportation HQ on Mars",
"a Major Bill's warehouse", "a Major Bill's warehouse",
"a Major Bill's distribution center", "a Major Bill's distribution center",
"a Major Bill's supply depot" "a Major Bill's supply depot" )
)
/datum/lore/organization/tsc/grayson /datum/lore/organization/tsc/grayson
name = "Grayson Manufactories Ltd." name = "Grayson Manufactories Ltd."
short_name = "Grayson " short_name = "Grayson "
acronym = "GM" acronym = "GM"
desc = "Grayson Manufactories Ltd. is one of the oldest surviving TSCs, having been in 'the biz' almost since mankind began to colonize the rest of the Sol system and thus exploit abundant 'extraterrestrial' resources. Where many choose to go into the high end markets, however, Grayson makes their money by providing foundations for other businesses; they run some of the largest mining and refining operations in all of human-inhabited space. Ore is hauled out of Grayson-owned mines, transported on Grayson-owned ships, and processed in Grayson-owned refineries, then sold by Grayson-licensed vendors to other industries. Several of their relatively newer ventures include heavy industrial equipment, which has earned a reputation for being surprisingly reliable.<br><br>Grayson may maintain a neutral stance towards their fellow TSCs, but can be quite aggressive in the markets that it already holds. A steady stream of rumors suggests they're not shy about engaging in industrial sabotage or calling in strikebreakers, either." desc = "Grayson Manufactories Ltd. is one of the oldest surviving TSCs, having been in 'the biz' almost since mankind began to colonize the rest of the Sol system and thus exploit abundant 'extraterrestrial' resources. Where many choose to go into the high end markets, however, Grayson makes their money by providing foundations for other businesses; they run some of the largest mining and refining operations in all of human-inhabited space. Ore is hauled out of Grayson-owned mines, transported on Grayson-owned ships, and processed in Grayson-owned refineries, then sold by Grayson-licensed vendors to other industries. Several of their relatively newer ventures include heavy industrial equipment, which has earned a reputation for being surprisingly reliable.<br><br>Grayson may maintain a neutral stance towards their fellow TSCs, but can be quite aggressive in the markets that it already holds. A steady stream of rumors suggests they're not shy about engaging in industrial sabotage or calling in strikebreakers, either."
history = ""
work = ""
headquarters = "Mars, Sol" headquarters = "Mars, Sol"
motto = ""
ship_prefixes = list("GMV" = "a general operations", "GMT" = "a transport", "GMR" = "a resourcing", "GMS" = "a surveying", "GMH" = "a bulk transit") ship_prefixes = list("GMV" = "a general operations", "GMT" = "a transport", "GMR" = "a resourcing", "GMS" = "a surveying", "GMH" = "a bulk transit")
//rocks //rocks

View File

@@ -76,5 +76,5 @@
/datum/gm_action/stowaway/announce() /datum/gm_action/stowaway/announce()
spawn(rand(15 MINUTES, 30 MINUTES)) spawn(rand(15 MINUTES, 30 MINUTES))
if(prob(20) && severity >= EVENT_LEVEL_MODERATE && atc && !atc.squelched) if(prob(20) && severity >= EVENT_LEVEL_MODERATE && GLOB.lore_atc && !GLOB.lore_atc.squelched)
atc.msg("Attention civilian vessels in [GLOB.using_map.starsys_name] shipping lanes, caution is advised as [pick("an unidentified vessel", "a known criminal's vessel", "a derelict vessel")] has been detected passing multiple local stations.") GLOB.lore_atc.msg("Attention civilian vessels in [GLOB.using_map.starsys_name] shipping lanes, caution is advised as [pick("an unidentified vessel", "a known criminal's vessel", "a derelict vessel")] has been detected passing multiple local stations.")

View File

@@ -71,5 +71,5 @@
/datum/gm_action/swarm_boarder/announce() /datum/gm_action/swarm_boarder/announce()
spawn(rand(5 MINUTES, 15 MINUTES)) spawn(rand(5 MINUTES, 15 MINUTES))
if(prob(80) && severity >= EVENT_LEVEL_MODERATE && atc && !atc.squelched) if(prob(80) && severity >= EVENT_LEVEL_MODERATE && GLOB.lore_atc && !GLOB.lore_atc.squelched)
atc.msg("Attention civilian vessels in [GLOB.using_map.starsys_name] shipping lanes, caution is advised as [pick("an unidentified vessel", "a known criminal's vessel", "a derelict vessel")] has been detected passing multiple local stations.") GLOB.lore_atc.msg("Attention civilian vessels in [GLOB.using_map.starsys_name] shipping lanes, caution is advised as [pick("an unidentified vessel", "a known criminal's vessel", "a derelict vessel")] has been detected passing multiple local stations.")

View File

@@ -6,8 +6,8 @@
/datum/lore/codex/category/auto_org/New(var/new_holder, var/new_parent) /datum/lore/codex/category/auto_org/New(var/new_holder, var/new_parent)
..(new_holder, new_parent) ..(new_holder, new_parent)
keywords += auto_keywords keywords += auto_keywords
for(var/path in loremaster.organizations) for(var/path in GLOB.loremaster.organizations)
var/datum/lore/organization/O = loremaster.organizations[path] var/datum/lore/organization/O = GLOB.loremaster.organizations[path]
if(!(istype(O, desired_type))) if(!(istype(O, desired_type)))
continue continue
var/datum/lore/codex/page/P = new(holder, src) var/datum/lore/codex/page/P = new(holder, src)

View File

@@ -82,9 +82,9 @@
FA.mode = 3 FA.mode = 3
if(level >= SEC_LEVEL_RED) if(level >= SEC_LEVEL_RED)
atc.reroute_traffic(yes = 1) // Tell them fuck off we're busy. GLOB.lore_atc.reroute_traffic(TRUE) // Tell them fuck off we're busy.
else else
atc.reroute_traffic(yes = 0) GLOB.lore_atc.reroute_traffic(FALSE)
admin_chat_message(message = "Security level is now: [uppertext(get_security_level())]", color = "#CC2222") //VOREStation Add admin_chat_message(message = "Security level is now: [uppertext(get_security_level())]", color = "#CC2222") //VOREStation Add
/proc/get_security_level() /proc/get_security_level()