From 0b31cc1898376feac169691046ac7072952a8400 Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Sun, 11 Aug 2019 23:16:34 +0100 Subject: [PATCH 01/18] step 1 --- code/modules/busy_space_vr/organizations.dm | 887 -------------------- vorestation.dme | 2 +- 2 files changed, 1 insertion(+), 888 deletions(-) delete mode 100644 code/modules/busy_space_vr/organizations.dm diff --git a/code/modules/busy_space_vr/organizations.dm b/code/modules/busy_space_vr/organizations.dm deleted file mode 100644 index 5a59b2f09e3..00000000000 --- a/code/modules/busy_space_vr/organizations.dm +++ /dev/null @@ -1,887 +0,0 @@ -//Datums for different companies that can be used by busy_space, VR edition - -// Some of these intentionally copy from busy_space/organizations.dm, which is disabled in our server. -////////////////////////////////////////////////////////////////////////////////// - -//Datums for different companies that can be used by busy_space -/datum/lore/organization - var/name = "" // Organization's name - var/short_name = "" // Organization's shortname (NanoTrasen for "NanoTrasen Incorporated") - var/acronym = "" // Organization's acronym, e.g. 'NT' for NanoTrasen'. - var/desc = "" // One or two paragraph description of the organization, but only current stuff. Currently unused. - var/history = "" // Historical discription of the organization's origins Currently unused. - var/work = "" // Short description of their work, eg "an arms manufacturer" - var/headquarters = "" // Location of the organization's HQ. Currently unused. - var/motto = "" // A motto/jingle/whatever, if they have one. Currently unused. - - var/list/ship_prefixes = list() //Some might have more than one! Like NanoTrasen. Value is the mission they perform, e.g. ("ABC" = "mission desc") - var/list/ship_names = list( //Names of spaceships. This is a mostly generic list that all the other organizations inherit from if they don't have anything better. - "Kestrel", - "Beacon", - "Signal", - "Freedom", - "Glory", - "Axiom", - "Eternal", - "Harmony", - "Light", - "Discovery", - "Endeavour", - "Explorer", - "Swift", - "Dragonfly", - "Ascendant", - "Tenacious", - "Pioneer", - "Hawk", - "Haste", - "Radiant", - "Luminous" - ) - var/list/destination_names = list() //Names of static holdings that the organization's ships visit regularly. - var/autogenerate_destination_names = TRUE - -/datum/lore/organization/New() - ..() - if(autogenerate_destination_names) // Lets pad out the destination names. - var/i = rand(6, 10) - var/list/star_names = list( - "Sol", "Alpha Centauri", "Sirius", "Vega", "Regulus", "Vir", "Algol", "Aldebaran", "Vilous", "Sanctum", "Qerr'Vallis", "Kataigal", "Antares", - "Delta Doradus", "Menkar", "Geminga", "Elnath", "Gienah", "Mu Leporis", "Nyx", "Tau Ceti", "Virgo-Erigone", "Uueoa-Esa", "Vazzend", "Kastra-71", - "Wazn", "Alphard", "Phact", "Altair", "El", "Eutopia", "Qerr'valis", "Qerrna-Lakirr", "Rarkajar", "the Almach Rim") - var/list/destination_types = list("dockyard", "station", "vessel", "waystation", "telecommunications satellite", "spaceport", "distress beacon", "anomaly", "colony", "outpost") - while(i) - destination_names.Add("a [pick(destination_types)] in [pick(star_names)]") - i-- - -////////////////////////////////////////////////////////////////////////////////// - -// TSCs -/datum/lore/organization/tsc/nanotrasen - name = "NanoTrasen Incorporated" - short_name = "NanoTrasen" - acronym = "NT" - desc = "NanoTrasen is one of the foremost research and development companies in SolGov space. \ - Originally focused on consumer products, their swift move into the field of Phoron has lead to \ - them being the foremost experts on the substance and its uses. In the modern day, NanoTrasen prides \ - itself on being an early adopter to as many new technologies as possible, often offering the newest \ - products to their employees. In an effort to combat complaints about being 'guinea pigs', Nanotrasen \ - also offers one of the most comprehensive medical plans in SolGov space, up to and including cloning \ - and therapy.\ -

\ - 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 \ - for newly tested posibrains to remain with the company." - history = "" // To be written someday. - work = "research giant" - headquarters = "Luna" - motto = "" - - ship_prefixes = list("NSV" = "exploration", "NTV" = "hauling", "NDV" = "patrol", "NRV" = "emergency response") - //Scientist or Greek mythology naming scheme - ship_names = list( - "Bardeen", - "Einstein", - "Feynman", - "Sagan", - "Tyson", - "Galilei", - "Jans", - "Fhriede", - "Franklin", - "Tesla", - "Curie", - "Darwin", - "Newton", - "Pasteur", - "Bell", - "Mendel", - "Kepler", - "Edision", - "Cavendish", - "Nye", - "Hawking", - "Aristotle", - "Von Braun", - "Kaku", - "Oppenheimer" - ) - // Note that the current station being used will be pruned from this list upon being instantiated - destination_names = list( - "NSS Exodus in Nyx", - "NCS Northern Star in Vir", - "NAB Smythside Central Headquarters in Sol", - "NAS Zeus orbiting Virgo-Prime", - "NIB Posideon in Alpha Centauri", - "NTB An-Nur on Virgo-Prime", - "the colony at Virgo-3B", - "the NanoTrasen phoron refinery in Vilous", - "a dockyard orbiting Virgo-Prime", - "an asteroid orbiting Virgo 3", - ) - -/datum/lore/organization/tsc/nanotrasen/New() - ..() - spawn(1) // BYOND shenanigans means using_map is not initialized yet. Wait a tick. - // Get rid of the current map from the list, so ships flying in don't say they're coming to the current map. - var/string_to_test = "[using_map.station_name] in [using_map.starsys_name]" - if(string_to_test in destination_names) - destination_names.Remove(string_to_test) - - - -/datum/lore/organization/tsc/hephaestus - name = "Hephaestus Industries" - short_name = "Hephaestus" - acronym = "HI" - desc = "Hephaestus Industries is the largest supplier of arms, ammunition, and small millitary vehicles in Sol space. \ - Hephaestus products have a reputation for reliability, and the corporation itself has a noted tendency to stay removed \ - 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 Hephastus’ largest \ - bulk contractors owing to the above factors." - history = "" - work = "arms manufacturer" - headquarters = "" - motto = "" - - ship_prefixes = list("HTV" = "freight", "HTV" = "munitions resupply") - //War God/Soldier Theme - ship_names = list( - "Ares", - "Athena", - "Grant", - "Custer", - "Puller", - "Nike", - "Bellona", - "Leonides", - "Bast", - "Jackson", - "Lee", - "Annan", - "Chi Yu", - "Shiva", - "Tyr" - ) - destination_names = list( - "a SolGov dockyard on Luna", - "a Fleet outpost in the Almach Rim", - "a Fleet outpost on the Moghes border" - ) - -/datum/lore/organization/tsc/vey_med - name = "Vey-Medical" - short_name = "Vey-Med" - acronym = "VM" - desc = "Vey-Med is one of the newer TSCs on the block and is notable for being largely owned and opperated by Skrell. \ - Despite the suspicion and prejudice leveled at them for their alien origin, Vey-Med has obtained market dominance in \ - the sale of medical equipment-- from surgical tools to large medical devices to the Oddyseus trauma response mecha \ - and everything in between. Their equipment tends to be top-of-the-line, most obviously shown by their incredibly \ - human-like FBP designs. Vey’s rise to stardom came from their introduction of ressurective cloning, although in \ - recent years they’ve been forced to diversify as their patents expired and NanoTrasen-made medications became \ - essential to modern cloning." - history = "" - work = "medical equipment supplier" - headquarters = "" - motto = "" - - ship_prefixes = list("VTV" = "transportation", "VMV" = "medical resupply") - // Diona names - ship_names = list( - "Wind That Stirs The Waves", - "Sustained Note Of Metal", - "Bright Flash Reflecting Off Glass", - "Veil Of Mist Concealing The Rock", - "Thin Threads Intertwined", - "Clouds Drifting Amid Storm", - "Loud Note And Breaking", - "Endless Vistas Expanding Before The Void", - "Fire Blown Out By Wind", - "Star That Fades From View", - "Eyes Which Turn Inwards", - "Joy Without Which The World Would Come Undone", - "A Thousand Thousand Planets Dangling From Branches" - ) - destination_names = list( - "a research facility in Samsara", - "a SDTF near Ue-Orsi", - "a sapientarian mission in the Almach Rim" - ) - -/datum/lore/organization/tsc/zeng_hu - name = "Zeng-Hu pharmaceuticals" - short_name = "Zeng-Hu" - acronym = "ZH" - desc = "Zeng-Hu is an old TSC, based in the Sol system. Until the discovery of Phoron, Zeng-Hu maintained a stranglehold \ - on the market for medications, and many household names are patentted by Zeng-Hu-- Bicaridyne, Dylovene, Tricordrizine, \ - and Dexalin all came from a Zeng-Hu medical laboratory. Zeng-Hu’s fortunes have been in decline as Nanotrasen’s near monopoly \ - on phoron research cuts into their R&D and Vey-Med’s superior medical equipment effectively decimated their own equipment \ - interests. The three-way rivalry between these companies for dominance in the medical field is well-known and a matter of \ - constant economic speculation." - history = "" - work = "pharmaceuticals company" - headquarters = "" - motto = "" - - ship_prefixes = list("ZTV" = "transportation", "ZMV" = "medical resupply") - destination_names = list() - -/datum/lore/organization/tsc/ward_takahashi - name = "Ward-Takahashi General Manufacturing Conglomerate" - short_name = "Ward-Takahashi" - acronym = "WT" - desc = "Ward-Takahashi focuses on the sale of small consumer electronics, with its computers, communicators, \ - and even mid-class automobiles a fixture of many households. Less famously, Ward-Takahashi also supplies most \ - of the AI cores on which vital control systems are mounted, and it is this branch of their industry that has \ - led to their tertiary interest in the development and sale of high-grade AI systems. Ward-Takahashi’s economies \ - of scale frequently steal market share from Nanotrasen’s high-price products, leading to a bitter rivalry in the \ - consumer electronics market." - history = "" - work = "electronics manufacturer" - headquarters = "" - motto = "" - - ship_prefixes = list("WTV" = "freight") - ship_names = list( - "Comet", - "Aurora", - "Supernova", - "Nebula", - "Galaxy", - "Starburst", - "Constellation", - "Pulsar", - "Quark", - "Void", - "Asteroid" - ) - destination_names = list() - -/datum/lore/organization/tsc/bishop - name = "Bishop Cybernetics" - short_name = "Bishop" - acronym = "BC" - desc = "Bishop’s focus is on high-class, stylish cybernetics. A favorite among transhumanists (and a bête noire for \ - bioconservatives), Bishop manufactures not only prostheses but also brain augmentation, synthetic organ replacements, \ - and odds and ends like implanted wrist-watches. Their business model tends towards smaller, boutique operations, giving \ - 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 \ - Positronic Rights Group and puts it in ideological (but not economic) comptetition with Morpheus Cyberkinetics." - history = "" - work = "cybernetics and augmentation manufacturer" - headquarters = "" - motto = "" - - ship_prefixes = list("BTV" = "transportation") - destination_names = list() - -/datum/lore/organization/tsc/morpheus - name = "Morpheus Cyberkinetics" - short_name = "Morpheus" - acronym = "MC" - desc = "The only large corporation run by positronic intelligences, Morpheus caters almost exclusively to their sensibilities \ - and needs. A product of the synthetic colony of Shelf, Morpheus eschews traditional advertising to keep their prices low and \ - relied on word of mouth among positronics to reach their current economic dominance. Morpheus in exchange lobbies heavily for \ - positronic rights, sponsors positronics through their Jans-Fhriede test, and tends to other positronic concerns to earn them \ - the good-will of the positronics, and the ire of those who wish to exploit them." - history = "" - work = "cybernetics manufacturer" - headquarters = "" - motto = "" - - ship_prefixes = list("MTV" = "freight") - // Culture names, because Anewbe told me so. - ship_names = list( - "Nervous Energy", - "Prosthetic Conscience", - "Revisionist", - "Trade Surplus", - "Flexible Demeanour", - "Just Read The Instructions", - "Limiting Factor", - "Cargo Cult", - "Gunboat Diplomat", - "A Ship With A View", - "Cantankerous", - "I Thought He Was With You", - "Never Talk To Strangers", - "Sacrificial Victim", - "Unwitting Accomplice", - "Witting Accomplice", - "Bad For Business", - "Just Testing", - "Size Isn't Everything", - "Yawning Angel", - "Liveware Problem", - "Very Little Gravitas Indeed", - "Zero Gravitas", - "Gravitas Free Zone", - "Absolutely No You-Know-What", - "Existence Is Pain", - "I'm Walking Here", - "Screw Loose", - "Of Course I Still Love You", - "Limiting Factor", - "So Much For Subtley", - "Unfortunate Conflict Of Evidence", - "Prime Mover", - "It's One Of Ours", - "Thank You And Goodnight", - "Boo!", - "Reasonable Excuse", - "Honest Mistake", - "Appeal To Reason", - "My First Ship II", - "Hidden Income", - "Anything Legal Considered", - "New Toy", - "Me, I'm Always Counting", - "Just Five More Minutes", - "Are You Feeling It", - "Great White Snark", - "No Shirt No Shoes", - "Callsign", - "Three Ships in a Trenchcoat", - "Not Wearing Pants", - "Ridiculous Naming Convention", - "God Dammit Morpheus", - "It Seemed Like a Good Idea", - "Legs All the Way Up", - "Purchase Necessary", - "Some Assembly Required", - "Buy One Get None Free", - "BRB", - "SHIP NAME HERE", - "Questionable Ethics", - "Accept Most Substitutes", - "I Blame the Government", - "Garbled Gibberish", - "Thinking Emoji", - "Is This Thing On?", - "Make My Day", - "No Vox Here", - "Savings and Values", - "Secret Name", - "Can't Find My Keys", - "Look Over There!", - "Made You Look!", - "Take Nothing Seriously", - "It Comes In Lime, Too", - "Loot Me", - "Nothing To Declare", - "Sneaking Suspicion", - "Bass Ackwards", - "Good Things Come to Those Who Freight", - "Redundant Morality", - "Synthetic Goodwill", - "Your Ad Here", - "What Are We Plotting?", - "Set Phasers To Stun", - "Preemptive Defensive Strike", - "This Ship Is Spiders", - "Legitimate Trade Vessel", - "Please Don't Explode II" - ) - destination_names = list( - "a trade outpost in Shelf" - ) - -/datum/lore/organization/tsc/xion - name = "Xion Manufacturing Group" - short_name = "Xion" - desc = "Xion, quietly, controls most of the market for industrial equipment. Their portfolio includes mining exosuits, \ - factory equipment, rugged positronic chassis, and other pieces of equipment vital to the function of the economy. Xion \ - keeps its control of the market by leasing, not selling, their equipment, and through infamous and bloody patent protection \ - lawsuits. Xion are noted to be a favorite contractor for SolGov engineers, owing to their low cost and rugged design." - history = "" - work = "industrial equipment manufacturer" - headquarters = "" - motto = "" - - ship_prefixes = list("XTV" = "hauling") - destination_names = list() - -/datum/lore/organization/gov/solgov - name = "Solar Central Government" - short_name = "SolGov" - acronym = "SCG" - desc = "SolGov is a federation of human governmental entities based on Earth, Sol, which defines top-level law for their member systems. \ - Member systems receive various benefits such as defensive pacts, trade agreements, social support and funding, and being able to participate \ - in the Colonial Assembly. The majority, but not all human territories are members of SolGov. As such, SolGov is a major power and \ - generally represents humanity on the galactic stage." - history = "A Unified Earth Government was formed in the wake of the Sol Interplanetary War and other conflicts of the 2160s. \ - With numerous Earth governments fighting independent battles against factions of both Facist and Communist forces, the UN became \ - involved, eventually using the war to absorb most, if not all Earth governments into itself, forming a global government to combat \ - the terrorists and stabilize the planet and its other world colonies. The UN won the war and the Unified Earth Government was formed, \ - with its' primary defense, scientific and exploratory force being the newly formed USDF. Although the UEG seemed to have complete \ - control over Earth and Sol's colonies, the UN still existed as an organization and a political entity to continue mediating between \ - countries and colonies. In 2291, Tobias Shaw and Wallace Fujikawa invented a device that could transition normal matter into slipspace \ - (bluespace), and FTL travel became possible. As humanity expanded beyond the Solar System, the UEG reorganized its self to become the \ - centralized government of humanity known today; Sol Central. Organizations like the USDF would continue to exist as a peacekeeping \ - force to protect most of humanity's interests across the galaxy." - work = "governing body of humanity's colonies" - headquarters = "Paris, Earth" - motto = "" - autogenerate_destination_names = TRUE - - ship_prefixes = list("SCG-T" = "transportation", "SCG-D" = "diplomatic", "SCG-F" = "freight") - destination_names = list( - "Mercury", - "Venus", - "Earth", - "Luna", - "Mars", - "Titan", - "Europa", - "the SolGov embassy in Virgo-Erigone", - "the SolGov embassy in Vilous" - )// autogen will add a lot of other places as well. -/* CITADEL CHANGE - Removes VEGA -/datum/lore/organization/gov/sifgov // Overrides Polaris stuff - name = "Virgo-Erigone Governmental Authority" - short_name = "" - desc = "Existing far outside the reach of SolGov space, the only governing body of the Virgo-Erigone system is the Virgo-Prime Governmental \ - Authority, also known as VEGA. It is a Technocracy founded and operated by NanoTrasen, using company appointed experts hired to see \ - to the comfort and well being of Virgo's citizens; most of whom are also NanoTrasen employees. VEGA provides basic social services \ - such as law enforcement, emergency services, medical care, education, and infrastructure. VEGA's operations are based on the world \ - of Virgo-Prime, within the spaceport city of Anur. Although the government is an entity of NanoTrasen, some elements of democracy \ - are still practiced, such as voting on changes to local law, policy, or public works." - history = "VEGA was founded in 2556, shortly after the Virgo-Erigone system was colonized by a population of 1000. That population has \ - multiplied many times since then as wealth and commerce come and go from this frontier star system." - work = "governing body of Virgo-Erigone" - headquarters = "Anur, Virgo-Prime" - motto = "Reach for the Stars." - autogenerate_destination_names = FALSE - - ship_prefixes = list("VEFD" = "fire rescue", "VEPD" = "patrol", "VEGA" = "administrative", "SAR" = "medivac") - destination_names = list( - "the colony at Virgo-3B", - "the VORE-1 debris field", - "a mining colony on Virgo-2", - "the Anur Spaceport", - "to a local distress beacon", - "NAS Zeus orbiting Virgo-Prime", - "NTB An-Nur on Virgo-Prime", - "the colony at Virgo-3B", - "a dockyard orbiting Virgo-Prime", - "an asteroid orbiting Virgo 3", - "a telecommunications satellite near Virgo-3B", - "a telecommunications satellite near Virgo-Prime" - ) -END OF CITADEL CHANGES */ -/* // Waiting for lore to be updated. -/datum/lore/organization/gov/federation - name = "United Federation of Planets" - short_name = "Federation" - desc = "The United Federation is a federation of planets that have agreed to exist semi-autonomously \ - under a single central hybrid government, sharing the ideals of liberty, equality, and rights \ - for all. It is one of the larger known interstellar powers in known space and is seen as being \ - the fastest building power. The core planet of Gaia is known for having a proud military culture \ - that, ironically, tends to stomp out any idea of warmongering from their cadets due to their \ - scarred history and the Federation's ideals." - history = "Before the United Federation, there was a simple alliance with no name between core planet \ - members. The United Federation itself found its roots in the aftermath of the Bloody \ - Valentine Civil War, a racially motivated war that occurred in 2550 during the last year of \ - the Federation Alliance of Gaia between the Genetically Modified and so-called Naturalists. \ - Neutral nations in Gaia's political sphere, encouraged by alien observers, formed the United \ - Federation when the indiscriminate loss of life became intolerable. 2555 saw the official \ - signing of the Federation Charter between the core planet members." - work = "governing body" - headquarters = "" - motto = "" - - //Star Trek ship names! - ship_prefixes = list("SCV" = "military", "STV" = "trading", "SDV" = "diplomatic") - ship_names = list("Kestrel", - "Beacon", - "Signal", - "Flying Freedom", - "Los Canas", - "Ixiom", - "Falken", - "Marigold", - "White Valley", - "Eternal", - "Arkbird", - "Akira", - "Kongou", - "Maki", - "Kagero", - "Nishiki", - "Icarus", - "Yuudachi", - "Tiki", - "Lucina", - "Tenryu", - "Spirit of Koni", - "Lady of Onoilph") - destination_names = list("Ruins of Chani City on Quarri III", - "Ruins of Kreely City on Ocan II", - "Ruins of Mishi City on Lucida IV", - "Ruins of Posloo City on Pi Cephei Prime", - "Molten Plains of Anarakis VII", - "Living City of Shani", - "Floating City of Nuni Vanni", - "Crystalline City of Delve Tile", - "New Iapetus Colony", - "Onul Colony", - "Ahemait Colony", - "New Amasia Colony", - "New Vesta Colony", - "Amaus Research Facility on Azaleh III", - "Living City of Na'me L'Tauri", - "Living City of Fithpa", - "Resource Mines of Lyra III", - "Resource Mines of Chi Cerberi III", - "Ceani Military Outpost on Rily VII", - "Naro Industrial Complex on Scheddi III", - "Mari Industrial Complex on Furlou Prime", - "Runni Crystal Mines of Keid V") -*/ - -/datum/lore/organization/mil/usdf - name = "United Sol Defense Force" - short_name = "" // This is blank on purpose. Otherwise they call the ships "USDF USDF Name" - desc = "The USDF is the dedicated military force of SolGov, originally formed by the United Nations. It is the \ - dominant superpower of the Orion Spur, and is able to project its influence well into parts of the Perseus and \ - Sagittarius arms of the galaxy. However, regions beyond that are too far for the USDF to be a major player." - history = "Earth's clashes with dissident political movements, the most important of which were the \"Red Faction\" and \"Storm Front,\" \ - began the crisis that led to the formation of the USDF. The Storm Front movement was a fascist organization based on the Jovian \ - Moons, a group that received backing from some corporations operating in the Federal Republic of Germany on Earth. Their \ - ideological opponents, the Red Faction, formed a Marxist-Leninist group on Mars centered around the leadership of Vladimir Koslov \ - around the same time. The USDF was commissioned in 2163 as a military force primarily composed of Naval and Marine \ - forces. In July 2164, the USDF partook in its first battle. From this point, the USDF was used by the UN in conflicts, \ - including the Interplanetary War. When the conflicts of Sol ended, a newly powerful Unified Earth Government (later SolGov) \ - and USDF began to expand into the stars. The apex of human expansion would come in 2490, when more than 600 worlds were \ - considered part of SolGov's territory, many developing into full-fledged colonies. By this time, a ring of Outer colonies \ - was providing SolGov with the raw materials that made the macro-economy function; with the political power remaining with \ - the Inner colonies. The massive difference in wealth distribution and political power, which became a hallmark of humanity \ - by this period, led to new threats of secession from the outer ring. In 2492, the colony of Far Isle was razed by nuclear \ - weapons after a massive uprising, creating a new found reason to rebel. SolGov began to wage a bloody struggle against \ - groups of terrorists (or freedom fighters) called the Insurrectionists, who wanted independence. The USDF continues to battle \ - sepratists to this day. The USDF's operations meanwhile focus on curbing piracy operations, as well as providing a deterrent \ - against other major military powers such as the Moghes Hegemony." - work = "peacekeeping and piracy suppression" - headquarters = "Paris, Earth" - motto = "Per Mare, Per Terras, Per Constellatum." // Stolen from Halo because fuck you that's why. -Ace - ship_prefixes = list("USDF" = "military", "USDF" = "anti-piracy", "USDF" = "escort", "USDF" = "humanitarian", "USDF" = "peacekeeping", "USDF" = "search-and-rescue", "USDF" = "war game") // It's all USDF but let's mix up what missions they do. - ship_names = list("Aegis Fate", - "Ain't No Sunshine", - "All Under Heaven", - "Allegiance", - "Andraste", - "Anjou", - "Barracuda", - "Bastion", - "Buenos Aires", - "Bum Rush", - "Callisto", - "Charon", - "Colorado", - "Commonwealth", - "Corsair", - "DeGaulle", - "Devestator", - "Dust of Snow", - "Euphrates", - "Fair Weather", - "Finite Hearts", - "Forward Unto Dawn", - "Gettysburg", - "Glamorgan", - "Grafton", - "Great Wall", - "Hammerhead", - "Herakles", - "Hoenir", - "In Amber Clad", - "Iwo Jima", - "Jolly Roger", - "Jormungandr", - "Leonidas", - "Meriwether Lewis", - "Mona Lisa", - "Olympus", - "Paris", - "Pony Express", - "Providence", - "Prydwen", - "Purpose", - "Ready or Not", - "Redoubtable", - "Rising Sun", - "Saratoga", - "Savannah", - "Shanxi", - "Song of the East", - "Stalwart Dawn", - "Strident", - "Tannenberg", - "Tokugawa", - "Totem Lake", - "Tripping Light", - "Two for Flinching") - destination_names = list("San Francisco on Earth", - "Gateway One above Luna", - "SolGov Headquarters on Earth", - "Olympus City on Mars", - "Hermes Naval Shipyard above Mars", - "Cairo Station above Earth", - "a rendezvous point in the Cyprus Arm", - "a settlement on Titan", - "a settlement on Europa", - "Aleph Grande on Ganymede", - "a colony in Proxima II", - "a settlement on Ceti IV-B", - "a colony ship around Ceti IV-B", - "a naval station above Ceti IV-B", - "a classified location in SolGov territory", - "a classified location in uncharted space", - "an emergency nav bouy", - "the USDF Naval Academy on Earth", - "Fort Rain on Tal") - -/datum/lore/organization/mil/oni - name = "SolGov Office of Naval Intelligence" - short_name = "" // This is blank on purpose. Otherwise they call the ships "ONI ONI Name" - desc = "The Office of Naval Intelligence is SolGov's eyes and ears in the galaxy's affairs. Despite its name, and despite its \ - usual association with the USDF, the Office of Naval Intelligence does not fall under the command of the military. From espionage \ - to archeological research, ONI's work provides SolGov with the knowledge and technology it requires to advance both military and \ - civilian interests across the galaxy." - history = "ONI was originally created by the consolidation of several military intelligence agencies from Sol during the Sol-Hegemony war. \ - The USDF's victory in that war was largely accredited to intelligence and technology advancements provided by ONI during that time, \ - most notably of which was the reverse-engineering of Unathi vessels, allowing the production of countermeasures that played a crucial \ - role during in the late stages of the conflict. After the war, ONI's resources were pooled into numerous top secret projects; much of \ - which remains unknown or outright denied to the public even today. Among their suspected activities include exploration, weapons \ - development, xenoarcheology, xenobiology, corporate espionage, and manipulation of political affairs." - work = "espionage, piracy suppression, xeno research, and various other black projects" - headquarters = "Paris, Earth" - motto = "The truth will set you free." - ship_prefixes = list("ONI" = "classified", "ONI" = "archeological", "ONI" = "exploration", "ONI" = "logistic") // It's all ONI but let's mix up what missions they do. - ship_names = list("Bastille", - "Fantôme", - "Harpocrates", - "Hoenir", - "Mata Hari", - "Midsummer Night", - "Mirage", - "Persephone", // Director Ixchel Kisoda's personal research ship - "Versailles") - destination_names = list("parts unknown", - "none of your business", - "uncharted space", - "an undisclosed location", - "facility 8492", - "you don't want to know", - "if told you I'd have to kill you", - "... wait, why am I even telling you this? Just let me pass", - "stop asking questions") -/* CITADEL CHANGE - Goodbye KHI -/datum/lore/organization/gov/kitsuhana - name = "Kitsuhana Heavy Industries" - short_name = "Kitsuhana" - desc = "A large post-scarcity amalgamation of races, Kitsuhana is no longer a company but rather a loose association of 'members' \ - who only share the KHI name and their ideals in common. Kitsuhana accepts interviews to join their ranks, and though they have no \ - formal structure with regards to government or law, the concept of 'consent' drives most of the large decision making. Kitsuhanans \ - pride themselves on their ability to avoid consequence, essentially preferring to live care-free lives. Their post-scarcity allows \ - them to rebuild, regrow, and replenish almost any lost asset or resource nearly instantly. It leads to many of the Kitsuhana \ - 'members' treating everything with frivolity and lends them a care-free demeanor." - history = "Originally a heavy industrial equipment and space mining company. During a forced evacuation of their homeworld, \ - they were they only organization with enough ship capacity to relocate any significant portion of the population, starting with \ - their own employees. After the resulting slowship travel to nearby starsystems, most of the population decided to keep the moniker \ - of the company name. Over the years, Kitsuhana developed into a post-scarcity anarchy where virtually nothing has consequences and \ - Kitsuhana 'members' can live their lives as they see fit, often in isolation." - work = "utopian anarchy" - headquarters = "Kitsuhana Prime" - motto = "Do what you want. We know we will." - - //Culture ship names! - ship_prefixes = list("KHI" = "personal") //Everybody's out for themselves, yanno. - ship_names = list("Nervous Energy", - "Prosthetic Conscience", - "Revisionist", - "Trade Surplus", - "Flexible Demeanour", - "Just Read The Instructions", - "Limiting Factor", - "Cargo Cult", - "Gunboat Diplomat", - "A Ship With A View", - "Cantankerous", - "I Thought He Was With You", - "Never Talk To Strangers", - "Sacrificial Victim", - "Unwitting Accomplice", - "Bad For Business", - "Just Testing", - "Size Isn't Everything", - "Yawning Angel", - "Liveware Problem", - "Very Little Gravitas Indeed", - "Zero Gravitas", - "Gravitas Free Zone", - "Absolutely No You-Know-What") - destination_names = list("Kitsuhana Prime", - "Kitsuhana Beta", - "Kitsuhana Gamma", - "the Kitsuhana Forge", - "a Kitsuhanan's home", - "a Kitsuhana ringworld in Pleis Ceti V", - "a Kitsuhana ringworld in Lund VI", - "a Kitsuhana ringworld in Dais IX", - "a Kitsuhana ringworld in Leibert II-b") -END OF CITADEL CHANGES */ -/datum/lore/organization/gov/ares - name = "Ares Confederation" - short_name = "ArCon" - desc = "A rebel faction in the Cygnus Arm that renounced the government of both SolGov and their corporate overlords. \ - The Confederation has two fleets; a regular United Fleet Host comprised of professional crewmen and officers, and the Free Host \ - of the Confederation which uses privateers, volunteers and former pirates. The Ares Confederation only holds a few dozen star \ - systems, but they will fiercely defend against any incursion upon their territory, especially by the USDF." - history = "Originally only a strike of miners on the dusty, arid planet of Ares in the year 2540, the Ares Confederation was quickly \ - established under the leadership of retired USDF Colonel Rodrick Gellaume, who is now Prime Minister." - work = "rebel fringe government" - headquarters = "Paraiso a Àstrea" - motto = "Liberty to the Stars!" - - ship_prefixes = list("UFHV" = "military", "FFHV" = "shady") - ship_names = list("Bulwark of the Free", - "Charged Negotiation", - "Corporation Breaker", - "Cheeki Breeki", - "Dawnstar", - "Fiery Justice", - "Fist of Ares", - "Freedom", - "Fuck The Captain", - "Gauntlet", - "Gellaume", - "Hero of the Revolution", - "Jerome", - "Laughing Maniac", - "Liberty", - "Mahama", - "Memory of Fallen", - "Miko", - "Mostly Harmless", - "None Of Your Business", - "Not Insured", - "People's Fist", - "Petrov", - "Prehensile Ethics", - "Pride of Liberty", - "Rodrick", - "She Is One Of Ours Sir", - "Star of Tiamat", - "Torch of Freedom", - "Torch") - destination_names = list("Drydocks of the Ares Confederation", - "a classified location", - "a Homestead on Paraiso a Àstrea", - "a contested sector of ArCon space", - "one of our free colonies", - "the Gateway 98-C at Arest", - "Sars Mara on Ares", - "Listening Post Maryland-Sigma", - "an emergency nav bouy", - "New Berlin on Nov-Ferrum", - "a settlement needing our help", - "Forward Base Sigma-Alpha in ArCon space") -/* CITADEL CHANGE - Removes the Golden Empire -/datum/lore/organization/gov/imperial - name = "Auream Imperium" - short_name = "Imperial" - desc = "Also known as the \"Golden Empire\", Auream Imperium is a superpower of elf-like humanoid beings who thrive in the southern \ - galaxy, presumably somewhere in the mid Centaurus Arm. Having existed in the observation shadow of the galactic core, this \ - galactic superpower had remained undiscovered by humanity despite its size until only recently. First contact was made on \ - June 15th 2561, when Imperial Navy cartographers stumbled upon the Virgo-Erigone system, far from the influence of the USDF. \ - Though little is currently known about the Golden Empire, their scholars have been willing to share some information. They \ - are currently ruled by a woman referred to as Empress Gutamir who is allegedly hundreds of years old. Images and portraits \ - of the empress depict a tall woman with an idealized figure of beauty as might have been seen in ancient Roman or Greek \ - works of art. She has white hair, silvery eyes, and a fair complexion. Whether or not these images are an authentic or \ - even an accurate depiction remains unknown. Vessels of the Golden Empire utilize technology unlike anything humans have ever \ - seen. Although they use bluespace for FTL travel, the methods in which they tap into bluespace has yet to be studied in any \ - detail by human scientists. Their kind hails from a binary system of Earth-like worlds called Sanctum and Venio, though the \ - exact location of these worlds is not known due to a culture of secrecy toward outsiders." - history = "According to Imperial scholars, the Golden Empire is a civilization that has existed for at least 10,000 Earth years. \ - Their home system is said to host not one but two Earth-like worlds, both of which have been home to elves as far as their \ - records go back. How the elves were able to travel between these worlds is currently unknown, but apparently they have been \ - doing so for at least the last 2000 years. However, from what is understood, until only 300 years ago, these accomplishments \ - were only made possible by a very limited number of ships apparently using borrowed technology from an undiscovered \ - civilization they call \"Architectus.\" Curiously, the Golden Empire's primary language is strikingly similar to ancient \ - Latin on Earth, indicating that they may have somehow come into contact with Earth at some point in their history. However, \ - this contradicts what historical records they have been willing to share with us, as it would predate the timeline of space \ - travel they have given us so far." - work = "rule over the southern galaxy in an uncharted region they call Segmentum Obscurum" - headquarters = "Sanctum and Venio" - motto = "Aut inveniam viam aut faciam" - - ship_prefixes = list("Bellator" = "naval", "Mercator" = "trade", "Benefactori" = "mercy", "Salvator" = "search-and-rescue", "Rimor" = "exploration", "Legatus" = "diplomatic") // It's all HMS but let's mix up what they do. - ship_names = list("Ambition", - "Aurora", - "Argo", - "Behemoth", - "Beholder", - "Boreas", - "Bulwark", - "Calypso", - "Cerberus", - "Chimera", - "Chronos", - "Civitas", - "Colossus", - "Covenant", - "Cyrus", - "Destiny", - "Epimetheus", - "Eternal", - "Excalibur", - "Forerunner", - "Fortitude", - "Hellion", - "Hussar", - "Hyperion", - "Illustria", - "Immortal", - "Infinitum", - "Inquisitor", - "Invictus", - "Judgment", - "Juggernaut", - "Knossos", - "Legacy", - "Leviathan", - "Marathon", - "Megalith", - "Mobius", - "Nemesis", - "Nightingale", - "Oblivion", - "Octavius", - "Orthrus", - "Pandora", - "Phalanx", - "Revenant", - "Rhapsody", - "Scylla", - "Seraphim", - "Starfall", - "Stargazer", - "Starhammer", - "Templar", - "Thundrus", - "Titan", - "Triarius", - "Trident", - "Tyrannus", - "Ulysses", - "Valkyrie", - "Victoria", - "Vindicator", - "Wreath") - destination_names = list("uncharted space", - "Cor Galaxia", - "near Cor Galaxia", - "Segmentum Obscurum", // Basically their home territory, where our telescopes can't see. They prefer to keep it that way. They call it something else internally. - ) -END OF CITADEL CHANGES */ diff --git a/vorestation.dme b/vorestation.dme index 74c00cd8f47..88f01148b00 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1474,7 +1474,7 @@ #include "code\modules\blob2\overmind\types.dm" #include "code\modules\busy_space\air_traffic.dm" #include "code\modules\busy_space\loremaster.dm" -#include "code\modules\busy_space_vr\organizations.dm" +#include "code\modules\busy_space\organizations.dm" #include "code\modules\client\asset_cache.dm" #include "code\modules\client\client defines.dm" #include "code\modules\client\client procs.dm" From 0bc709e9c5a8dadbb79e09e365a8c1f22b90c61f Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Mon, 12 Aug 2019 02:50:41 +0100 Subject: [PATCH 02/18] step 2 --- code/modules/busy_space/air_traffic.dm | 79 +++++++++++++++++------- code/modules/busy_space/organizations.dm | 4 +- 2 files changed, 59 insertions(+), 24 deletions(-) diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm index e90392d9d07..5b4abd156bc 100644 --- a/code/modules/busy_space/air_traffic.dm +++ b/code/modules/busy_space/air_traffic.dm @@ -3,8 +3,8 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller /datum/lore/atc_controller - var/delay_max = 25 MINUTES //How long between ATC traffic, max. Default is 25 mins. - var/delay_min = 40 MINUTES //How long between ATC traffic, min. Default is 40 mins. + var/delay_max = 2 MINUTES //How long between ATC traffic, max. Default is 25 mins. + var/delay_min = 4 MINUTES //How long between ATC traffic, min. Default is 40 mins. var/backoff_delay = 5 MINUTES //How long to back off if we can't talk and want to. Default is 5 mins. var/next_message //When the next message should happen in world.time var/force_chatter_type //Force a specific type of messages @@ -77,10 +77,11 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller "refueling information" = list("sending refueling information now", "no fuel for your ship class in this sector"), "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"), - "permission to engage FTL" = list("permission to engage FTL granted, good day", "permission denied, wait for current traffic to pass"), + //STC can't possibly oversee every single jump into and out of the system, nor should they try to +/* "permission to engage FTL" = list("permission to engage FTL granted, good day", "permission denied, wait for current traffic to pass"), "permission to transit system" = list("permission to transit granted, good day", "permission denied, wait for current traffic to pass"), "permission to depart system" = list("permission to depart granted, good day", "permission denied, wait for current traffic to pass"), - "permission to enter system" = list("good day, permission to enter granted", "permission denied, wait for current traffic to pass"), + "permission to enter system" = list("good day, permission to enter granted", "permission denied, wait for current traffic to pass"),*/ ) //Random chance things for variety @@ -88,7 +89,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller if(force_chatter_type) chatter_type = force_chatter_type else - chatter_type = pick(2;"emerg",5;"wrong_freq","normal") //Be nice to have wrong_lang... + chatter_type = pick(2;"emerg",5;"wrong_freq","normal","policescan","dockingrequest","undockingrequest") //Be nice to have wrong_lang... var/yes = prob(90) //Chance for them to say yes vs no @@ -96,34 +97,68 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/callname = pick(alt_atc_names) var/response = requests[request][yes ? 1 : 2] //1 is yes, 2 is no - var/full_request - var/full_response - var/full_closure + // var/full_request + // var/full_response + // var/full_closure switch(chatter_type) if("wrong_freq") callname = pick(wrong_atc_names) - full_request = "[callname], this is [combined_name] on a [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request]." - full_response = "[combined_name], this is [using_map.station_short] TraCon, wrong frequency. Switch to [rand(700,999)].[rand(1,9)]." - full_closure = "[using_map.station_short] TraCon, understood, apologies." - if("wrong_lang") - //Can't implement this until autosay has language support + msg("[callname], this is [combined_name] on a [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_name], this is [using_map.station_short] Control, wrong frequency. Switch to [rand(700,999)].[rand(1,9)].") + sleep(5 SECONDS) + msg("[using_map.station_short] Control, understood, apologies.","[prefix] [shipname]") if("emerg") - var/problem = pick("hull breaches on multiple decks","unknown life forms on board","a drive about to go critical","asteroids impacting the hull","a total loss of engine power","people trying to board the ship") - full_request = "This is [combined_name] declaring an emergency! We have [problem]!" - full_response = "[combined_name], this is [using_map.station_short] TraCon, copy. Switch to emergency responder channel [rand(700,999)].[rand(1,9)]." - full_closure = "[using_map.station_short] TraCon, okay, switching now." + var/problem = pick("hull breaches on multiple decks","unknown life forms on board","a drive about to go critical","asteroids impacting the hull","a total loss of engine power","hostile ships closing fast","unidentified boarders") + msg("This is [combined_name] declaring an emergency! We have [problem]!","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_name], this is [using_map.station_short] Control, copy. Switch to emergency responder channel [rand(700,999)].[rand(1,9)].") + sleep(5 SECONDS) + msg("Understood [using_map.station_short] Control, switching now.","[prefix] [shipname]") + 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?","Any day now...") + var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","Apologies for the delay, you're clear.","Switch to [rand(700,999)].[rand(1,9)] and await further instruction.") + msg("[combined_name], this is [using_map.station_short] Control, your ship has been flagged for routine inspection.") + sleep(5 SECONDS) + msg("[confirm] [using_map.station_short] Control, holding position.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("Your compliance is appreciated, [combined_name]. Scan commencing.") + sleep(10 SECONDS) + msg(complain,"[prefix] [shipname]") + sleep(15 SECONDS) + msg("[combined_name], this is [using_map.station_short] Control. Scan complete. [completed]") + if("dockingrequest") + var/intensifier = pick("very","pretty","critically","extremely","dangerously") + var/low_thing = pick("ammunition","oxygen","water","food","medical supplies","reaction mass","hydrogen fuel","phoron fuel","fuel") + var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") + var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") + msg("[callname], this is [combined_name]. We're [intensifier] low on [low_thing] and need to resupply. Requesting permission to dock.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,24)]. Follow the green lights on your way in.") + sleep(5 SECONDS) + msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") + if("undockingrequest") + var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week") + msg("[callname], this is [combined_name], requesting permission to depart from pad [rand(1,24)].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_name], this is [using_map.station_short] Control. Permission granted. Docking clamps released. [safetravels].") else - full_request = "[callname], this is [combined_name] on a [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request]." - full_response = "[combined_name], this is [using_map.station_short] TraCon, [response]." //Station TraCon always calls themselves TraCon - full_closure = "[using_map.station_short] TraCon, [yes ? "thank you" : "understood"], good day." //They always copy what TraCon called themselves in the end when they realize they said it wrong + msg("[callname], this is [combined_name] on a [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_name], this is [using_map.station_short] Control, [response].") + sleep(5 SECONDS) + msg("[using_map.station_short] Control, [yes ? "thank you" : "understood"], good day.","[prefix] [shipname]") +/* //OLD BLOCK, for reference //Ship sends request to ATC - msg(full_request,"[prefix] [shipname]") + msg(full_request,"[prefix] [shipname]" sleep(5 SECONDS) //ATC sends response to ship msg(full_response) sleep(5 SECONDS) //Ship sends response to ATC msg(full_closure,"[prefix] [shipname]") - return \ No newline at end of file + return +*/ \ No newline at end of file diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm index 94f2872711f..aaeb662096f 100644 --- a/code/modules/busy_space/organizations.dm +++ b/code/modules/busy_space/organizations.dm @@ -520,7 +520,7 @@ "Titan" )// autogen will add a lot of other places as well. -/* + // To be expanded upon later, once the military lore gets sorted out. // Military @@ -547,4 +547,4 @@ "a wreck in SifGov territory", "a military outpost", ) -*/ + From dc25919716ddaed383fd49c682a13dd40fcbf958 Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Mon, 12 Aug 2019 14:33:26 +0100 Subject: [PATCH 03/18] step 3 --- code/modules/busy_space/air_traffic.dm | 80 ++++++++++++++++++++---- code/modules/busy_space/organizations.dm | 80 +++++++++++++++--------- 2 files changed, 121 insertions(+), 39 deletions(-) diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm index 5b4abd156bc..f9b41ddd7cc 100644 --- a/code/modules/busy_space/air_traffic.dm +++ b/code/modules/busy_space/air_traffic.dm @@ -30,7 +30,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller /datum/lore/atc_controller/proc/msg(var/message,var/sender) ASSERT(message) - global_announcer.autosay("[message]", sender ? sender : "[using_map.station_short] Space Control") + global_announcer.autosay("[message]", sender ? sender : "[using_map.station_short] Control") /datum/lore/atc_controller/proc/reroute_traffic(var/yes = 1) if(yes) @@ -62,9 +62,9 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/destname = pick(dest.destination_names) //Pick a random holding from the destination var/combined_name = "[owner] [prefix] [shipname]" - var/alt_atc_names = list("[using_map.station_short] TraCon","[using_map.station_short] Control","[using_map.station_short] STC","[using_map.station_short] Airspace") + var/alt_atc_names = list("[using_map.station_short] TraCon","[using_map.station_short] Control","[using_map.station_short] STC","[using_map.station_short] StarCon") var/wrong_atc_names = list("Sol Command","New Reykjavik StarCon", "[using_map.dock_name]") - var/mission_noun = list("flight","mission","route") + var/mission_noun = list("flight","mission","route","operation") var/request_verb = list("requesting","calling for","asking for") //First response is 'yes', second is 'no' @@ -89,7 +89,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller if(force_chatter_type) chatter_type = force_chatter_type else - chatter_type = pick(2;"emerg",5;"wrong_freq","normal","policescan","dockingrequest","undockingrequest") //Be nice to have wrong_lang... + chatter_type = pick(2;"emerg",5;"wrong_freq","policescan","policeflee","pathwarning","dockingrequestgeneric","dockingrequestdenied","dockingrequestsupply","dockingrequestrepair","dockingrequestmedical","dockingrequestsecurity","undockingrequest","normal") //Be nice to have wrong_lang... var/yes = prob(90) //Chance for them to say yes vs no @@ -118,20 +118,51 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller msg("Understood [using_map.station_short] Control, switching now.","[prefix] [shipname]") 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?","Any day now...") + 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.") var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","Apologies for the delay, you're clear.","Switch to [rand(700,999)].[rand(1,9)] and await further instruction.") - msg("[combined_name], this is [using_map.station_short] Control, your ship has been flagged for routine inspection.") + msg("[combined_name], this is [using_map.station_short] Control, your ship has been flagged for routine inspection. Hold position and prepare to be scanned.") sleep(5 SECONDS) msg("[confirm] [using_map.station_short] Control, holding position.","[prefix] [shipname]") sleep(5 SECONDS) msg("Your compliance is appreciated, [combined_name]. Scan commencing.") sleep(10 SECONDS) - msg(complain,"[prefix] [shipname]") + msg("[complain] We're on a [mission] [pick(mission_noun)] to [destname].","[prefix] [shipname]") sleep(15 SECONDS) msg("[combined_name], this is [using_map.station_short] Control. Scan complete. [completed]") - if("dockingrequest") - var/intensifier = pick("very","pretty","critically","extremely","dangerously") - var/low_thing = pick("ammunition","oxygen","water","food","medical supplies","reaction mass","hydrogen fuel","phoron fuel","fuel") + if("policeflee") + 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!") + msg("[combined_name], this is [using_map.station_short] Control, your ship has been flagged for routine inspection. Hold position and prepare to be scanned.") + sleep(5 SECONDS) + msg("[uhoh]","[prefix] [shipname]") + sleep(5 SECONDS) + msg("This is [using_map.station_short] Control to all local security vessels; interdict and detain [combined_name]. Control out.") + if("pathwarning") + var/navhazard = pick ("a pocket of intense radiation","a pocket of unstable gas","a debris field","a secure installation","an active combat zone","a quarantined ship","a quarantined installation","a quarantined sector") + var/confirm = pick("Understood","Roger that","Affirmative","Thanks for the heads up") + var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you") + msg("[combined_name], this is [using_map.station_short] Control, your ship is approaching [navhazard], please adjust heading to [rand(1,360)].") + sleep(5 SECONDS) + msg("[confirm] [using_map.station_short] Control, adjusting course.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("Your compliance is appreciated, [combined_name]. [safetravels].") + if("dockingrequestgeneric") + var/appreciation = pick("Much appreciated","Many thanks","Understood") + var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") + msg("[callname], this is [combined_name], requesting permission to dock.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,24)]. Follow the green lights on your way in.") + sleep(5 SECONDS) + msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") + if("dockingrequestdenied") + var/reason = pick("don't have any free landing pads right now","don't have any landing pads large enough for your vessel","don't have the necessary facilities for your vessel type or class","can't verify your credentials") + msg("[callname], this is [combined_name], requesting permission to dock.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_name], this is [using_map.station_short] Control. Permission denied, we [reason].") + sleep(5 SECONDS) + msg("Understood, [using_map.station_short] Control.","[prefix] [shipname]") + if("dockingrequestsupply") + var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda") + var/low_thing = pick("ammunition","oxygen","water","food","medical supplies","reaction mass","hydrogen fuel","phoron fuel","fuel","beans","air freshener","booze","beer") var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We're [intensifier] low on [low_thing] and need to resupply. Requesting permission to dock.","[prefix] [shipname]") @@ -139,8 +170,35 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,24)]. Follow the green lights on your way in.") sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") + if("dockingrequestrepair") + var/damagestate = pick("a little banged up","missing some paint","suffering minor system malfunctions","having some technical issues","overdue maintenance","hearing some weird noises from the engines") + var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") + var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") + msg("[callname], this is [combined_name]. We're [damagestate]. Requesting permission to dock for repairs.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,24)]. Follow the green lights on your way in. Repair crews are standing by.") + sleep(5 SECONDS) + msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") + if("dockingrequestmedical") + var/medicalstate = pick("multiple casualties","several cases of radiation sickness","an unknown virus","a critically injured VIP","sick refugees","multiple cases of food poisoning","injured passengers","wounded marines","a delicate situation") + var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") + var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") + msg("[callname], this is [combined_name]. We have [medicalstate] on board. Requesting permission to dock for medical assistance.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,24)]. Follow the green lights on your way in. Medtechs are standing by. Please follow standard quarantine procedures.") + sleep(5 SECONDS) + msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") + if("dockingrequestsecurity") + var/securitystate = pick("several prisoners","a captured pirate","a wanted man","stowaways","incompetent shipjackers","a delicate situation") + var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") + var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") + msg("[callname], this is [combined_name]. We have [securitystate] on board and require security assistance. Requesting permission to dock.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,24)]. Follow the green lights on your way in. Security teams are standing by for your arrival.") + sleep(5 SECONDS) + msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") if("undockingrequest") - var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week") + var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you") msg("[callname], this is [combined_name], requesting permission to depart from pad [rand(1,24)].","[prefix] [shipname]") sleep(5 SECONDS) msg("[combined_name], this is [using_map.station_short] Control. Permission granted. Docking clamps released. [safetravels].") diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm index aaeb662096f..7edd83cd302 100644 --- a/code/modules/busy_space/organizations.dm +++ b/code/modules/busy_space/organizations.dm @@ -52,7 +52,7 @@ "Sol", "Alpha Centauri", "Tau Ceti", "Zhu Que", "Oasis", "Vir", "Gavel", "Ganesha", "Saint Columbia", "Altair", "Sidhe", "New Ohio", "Parvati", "Mahi-Mahi", "Nyx", "New Seoul", "Kess-Gendar", "Raphael", "Phact", "Altair", "El", "Eutopia", "Qerr'valis", "Qerrna-Lakirr", "Rarkajar", "Thoth", "Jahan's Post", "Kauq'xum", "Silk", "New Singapore", "Stove", "Viola", "Love", "Isavau's Gamble" ) - var/list/destination_types = list("dockyard", "station", "vessel", "waystation", "telecommunications satellite", "spaceport", "anomaly", "colony", "outpost") + var/list/destination_types = list("dockyard", "station", "vessel", "waystation", "telecommunications satellite", "spaceport", "anomaly", "colony", "outpost", "debris field", "asteroid base", "research facility", "corporate installation", "freeport") while(i) destination_names.Add("a [pick(destination_types)] in [pick(star_names)]") i-- @@ -118,7 +118,7 @@ destination_names = list( "NSS Exodus in Nyx", "NCS Northern Star in Vir", - //"NLS Southern Cross in Vir", + "NLS Southern Cross in Vir", "NAS Vir Central Command", "a dockyard orbiting Sif", "an asteroid orbiting Kara", @@ -309,7 +309,7 @@ headquarters = "" motto = "" - ship_prefixes = list("ITV" = "transportation", "ISV" = "research exchange") //Bishop can't afford / doesn't care enough to afford its own prefixes + ship_prefixes = list("BTV" = "transportation", "BSV" = "research exchange") destination_names = list( "A medical facility in Angessa's Pearl" ) @@ -428,8 +428,7 @@ "Normal Ship Name", "Define Offensive", "Tiffany", - "My Other Ship is A Gestalt", - "NTV HTV WTV ITV ZTV" + "My Other Ship is A Gestalt" ) destination_names = list( "a trade outpost in Shelf" @@ -438,6 +437,7 @@ /datum/lore/organization/tsc/xion name = "Xion Manufacturing Group" short_name = "Xion" + acronym = "XMG" desc = "Xion, quietly, controls most of the market for industrial equipment. Their portfolio includes mining exosuits, \ factory equipment, rugged positronic chassis, and other pieces of equipment vital to the function of the economy. Xion \ keeps its control of the market by leasing, not selling, their equipment, and through infamous and bloody patent protection \ @@ -449,29 +449,44 @@ ship_prefixes = list("XTV" = "hauling", "XFV" = "bulk transport", "XIV" = "resupply") destination_names = list() + +/datum/lore/organization/tsc/antares + name = "Antares Robotics Group" + short_name = "Antares" + acronym = "ARG" + desc = "A relative newcomer to the prosthetics and cybernetics market, the Antares Robotics Group builds sturdy, reliable hardware supremely suited to frontier life. They're in direct (and aggressive) competition with Hephaestus Industries, though it remains to be seen what HI will make of these newcomers trying to muscle in on their share of the frontier markets." + history = "" + work = "cybernetics manufacturer" + headquarters = "" + motto = "" + + ship_prefixes = list("ATV" = "transport", "ARV" = "research", "ADV" = "routine patrol", "AEV" = "raw materials acquisition") + destination_names = list() /datum/lore/organization/tsc/mbt name = "Major Bill's Transportation" short_name = "Major Bill's" + acronym = "MBT" desc = "The most popular courier service and starliner, Major Bill's is an unassuming corporation whose greatest asset is their low cost and brand recognition. Major Bill’s is known, perhaps unfavorably, for its mascot, Major Bill, a cartoonish military figure that spouts quotable slogans. Their motto is \"With Major Bill's, you won't pay major bills!\", an earworm much of the galaxy longs to forget." history = "" work = "courier and passenger transit" headquarters = "Mars, Sol" motto = "" - ship_prefixes = list("TTV" = "transport", "TTV" = "luxury transit") + ship_prefixes = list("TTV" = "transport", "TTV" = "luxury transit", "TTV" = "priority transit") destination_names = list() /datum/lore/organization/tsc/independent - name = "Free Traders" - short_name = "Free Trader" - desc = "Though less common now than they were in the decades before the Sol Economic Organization took power, independent traders remain an important part of the galactic economy, owing in no small part to protective tarrifs established by the Free Trade Union in the late twenty-forth century." + name = "Independent Pilots Association" + short_name = "Independent" + acronym = "IPA" + desc = "Though less common now than they were in the decades before the Sol Economic Organization took power, independent traders remain an important part of the galactic economy, owing in no small part to protective tariffs established by the Free Trade Union in the late twenty-fourth century. Further out on the frontier, independent pilots are often the only people keeping freight and supplies moving." history = "" work = "trade and transit" headquarters = "N/A" motto = "N/A" - ship_prefixes = list("IEV" = "prospecting", "IEC" = "prospecting", "IFV" = "bulk freight", "ITV" = "passenger transport", "ITC" = "just-in-time delivery") + ship_prefixes = list("IEV" = "prospecting", "IEC" = "prospecting", "IFV" = "bulk freight", "ITV" = "passenger transport", "ITC" = "just-in-time delivery", "IPV" = "patrol", "IHV" = "bounty hunting") destination_names = list() // Governments @@ -517,7 +532,8 @@ "Earth", "Luna", "Mars", - "Titan" + "Titan", + "the Jovian subcluster", )// autogen will add a lot of other places as well. @@ -525,26 +541,34 @@ // Military -/datum/lore/organization/mil/sif_guard - name = "Sif Defense Force" // Todo: Get better name from lorepeople. - short_name = "SifGuard" - desc = "" +/datum/lore/organization/mil/wolfpack + name = "Wolfpack Security" + short_name = "WolfSec" + acronym = "WPS" + desc = "Wolfpack Security is a merging of several much smaller freelance companies, and operates throughout civilized space. Unlike some companies, it operates no planetside facilities whatsoever, opting instead for larger flotillas that are serviced by innumerable smallcraft. As with any PMC there's no small amount of controversy surrounding them, but they try to keep their operations cleaner than their competitors." history = "" - work = "Sif Governmental Authority's military" - headquarters = "New Reykjavik, Sif" + work = "mercenary contractors" + headquarters = "" motto = "" - autogenerate_destination_names = FALSE // Kinda weird if SifGuard goes to Nyx. - ship_prefixes = list("SGSC" = "military", "SGSC" = "patrol", "SGSC" = "rescue", "SGSC" = "emergency response") // Todo: Replace prefix with better one. + ship_prefixes = list("WPF" = "secure freight", "WPS" = "logistics", "WPV" = "patrol", "WPH" = "bounty hunting", "WPX" = "experimental", "WPC" = "command", "WPI" = "mercy") destination_names = list( - "a classified location in SolGov territory", - "Sif orbit", - "the rings of Kara", - "the rings of Rota", - "Firnir orbit", - "Tyr orbit", - "Magni orbit", - "a wreck in SifGov territory", - "a military outpost", + "Wolfpack Command", + "a WPS patrol fleet", + "a WPS flotilla", + "a WPS training fleet", ) +/datum/lore/organization/mil/blackstar + name = "Blackstar Legion" + short_name = "Blackstar" + acronym = "BSL" + desc = "Shrouded in mystery and controversy, Blackstar Legion is said to have its roots in pre-FTL Sol private military contractors. Their reputation means that most upstanding corporations and governments are hesitant to call upon them, whilst their prices put them out of the reach of most private individuals. As a result, they're mostly seen as the hired thugs of frontier governments that don't (or won't) answer to SolGov." + history = "" + work = "mercenary contractors" + headquarters = "" + motto = "" + + ship_prefixes = list("BSF" = "secure freight", "BSS" = "logistics", "BSV" = "patrol", "BSH" = "security", "BSX" = "experimental", "BSC" = "command") + destination_names = list() + From aaa8cfdeb7d38701a499a86bedd69eb280fdb514 Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Mon, 12 Aug 2019 17:34:13 +0100 Subject: [PATCH 04/18] step 4 --- code/modules/busy_space/air_traffic.dm | 35 ++++++---- code/modules/busy_space/organizations.dm | 88 ++++++++++++++++++------ 2 files changed, 88 insertions(+), 35 deletions(-) diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm index f9b41ddd7cc..75b32c56948 100644 --- a/code/modules/busy_space/air_traffic.dm +++ b/code/modules/busy_space/air_traffic.dm @@ -59,9 +59,14 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/prefix = pick(source.ship_prefixes) //Pick a random prefix var/mission = source.ship_prefixes[prefix] //The value of the prefix is the mission type that prefix does var/shipname = pick(source.ship_names) //Pick a random ship name to go with it - var/destname = pick(dest.destination_names) //Pick a random holding from the destination + var/destname = pick(dest.destination_names) //Pick a random holding from the destination + if(source.roaming == FALSE) //Check they're system-limited or no; if yes, reroute them to "home" destinations + destname = pick(dest.destination_names) + else //Maybe redundant but whatever + destname = pick(source.destination_names) var/combined_name = "[owner] [prefix] [shipname]" + var/scan_exempt = source.scan_exempt var/alt_atc_names = list("[using_map.station_short] TraCon","[using_map.station_short] Control","[using_map.station_short] STC","[using_map.station_short] StarCon") var/wrong_atc_names = list("Sol Command","New Reykjavik StarCon", "[using_map.dock_name]") var/mission_noun = list("flight","mission","route","operation") @@ -89,7 +94,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller if(force_chatter_type) chatter_type = force_chatter_type else - chatter_type = pick(2;"emerg",5;"wrong_freq","policescan","policeflee","pathwarning","dockingrequestgeneric","dockingrequestdenied","dockingrequestsupply","dockingrequestrepair","dockingrequestmedical","dockingrequestsecurity","undockingrequest","normal") //Be nice to have wrong_lang... + chatter_type = pick(2;"emerg",5;"wrong_freq",2;"policescan",2;"policeflee",2;"pathwarning",2;"dockingrequestgeneric",2;"dockingrequestdenied",2;"dockingrequestsupply",2;"dockingrequestrepair",2;"dockingrequestmedical",2;"dockingrequestsecurity",2;"undockingrequest","normal") //Be nice to have wrong_lang... var/yes = prob(90) //Chance for them to say yes vs no @@ -116,7 +121,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller msg("[combined_name], this is [using_map.station_short] Control, copy. Switch to emergency responder channel [rand(700,999)].[rand(1,9)].") sleep(5 SECONDS) msg("Understood [using_map.station_short] Control, switching now.","[prefix] [shipname]") - if("policescan") + if("policescan" && !scan_exempt) 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.") var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","Apologies for the delay, you're clear.","Switch to [rand(700,999)].[rand(1,9)] and await further instruction.") @@ -126,10 +131,10 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("Your compliance is appreciated, [combined_name]. Scan commencing.") sleep(10 SECONDS) - msg("[complain] We're on a [mission] [pick(mission_noun)] to [destname].","[prefix] [shipname]") + msg(complain,"[prefix] [shipname]") sleep(15 SECONDS) msg("[combined_name], this is [using_map.station_short] Control. Scan complete. [completed]") - if("policeflee") + if("policeflee" && !scan_exempt) 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!") msg("[combined_name], this is [using_map.station_short] Control, your ship has been flagged for routine inspection. Hold position and prepare to be scanned.") sleep(5 SECONDS) @@ -150,33 +155,33 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name], requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,24)]. Follow the green lights on your way in.") + msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in.") sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestdenied") - var/reason = pick("don't have any free landing pads right now","don't have any landing pads large enough for your vessel","don't have the necessary facilities for your vessel type or class","can't verify your credentials") + var/reason = pick("we don't have any free landing pads right now","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","we can't verify your credentials","you're too far away, please close to ten thousand meters and resubmit your request") msg("[callname], this is [combined_name], requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Permission denied, we [reason].") + msg("[combined_name], this is [using_map.station_short] Control. Permission denied, [reason].") sleep(5 SECONDS) msg("Understood, [using_map.station_short] Control.","[prefix] [shipname]") if("dockingrequestsupply") - var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda") + var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda","a little","rather","terribly","dreadfully") var/low_thing = pick("ammunition","oxygen","water","food","medical supplies","reaction mass","hydrogen fuel","phoron fuel","fuel","beans","air freshener","booze","beer") var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We're [intensifier] low on [low_thing] and need to resupply. Requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,24)]. Follow the green lights on your way in.") + msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in.") sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestrepair") - var/damagestate = pick("a little banged up","missing some paint","suffering minor system malfunctions","having some technical issues","overdue maintenance","hearing some weird noises from the engines") + var/damagestate = pick(" We're showing 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","We're hearing some weird noises from the engines","Our artificial gravity generator has failed","Our life support is failing","Our water recycling system has shorted out","Our systems are glitching out","We got hit by a solar flare","We had a close call with an asteroid","We have a fuel leak","We have depressurized compartments") var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") - msg("[callname], this is [combined_name]. We're [damagestate]. Requesting permission to dock for repairs.","[prefix] [shipname]") + msg("[callname], this is [combined_name]. [damagestate]. Requesting permission to dock for repairs.","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,24)]. Follow the green lights on your way in. Repair crews are standing by.") + msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in. Repair crews are standing by, contact them on channel [rand(700,999)].[rand(1,9)].") sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestmedical") @@ -185,7 +190,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We have [medicalstate] on board. Requesting permission to dock for medical assistance.","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,24)]. Follow the green lights on your way in. Medtechs are standing by. Please follow standard quarantine procedures.") + msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in. Medtechs are standing by, contact them on channel [rand(700,999)].[rand(1,9)].") sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestsecurity") @@ -194,7 +199,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We have [securitystate] on board and require security assistance. Requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,24)]. Follow the green lights on your way in. Security teams are standing by for your arrival.") + msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in. Security teams are standing by, contact them on channel [rand(700,999)].[rand(1,9)].") sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") if("undockingrequest") diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm index 7edd83cd302..1191f3e3c58 100644 --- a/code/modules/busy_space/organizations.dm +++ b/code/modules/busy_space/organizations.dm @@ -42,6 +42,8 @@ "Ishtar's Grace" ) var/list/destination_names = list() //Names of static holdings that the organization's ships visit regularly. + var/roaming = TRUE //am I allowed to roam out of system? + var/scan_exempt = FALSE //am I exempt from routine scans? var/autogenerate_destination_names = TRUE /datum/lore/organization/New() @@ -49,12 +51,10 @@ if(autogenerate_destination_names) // Lets pad out the destination names. var/i = rand(6, 10) var/list/star_names = list( - "Sol", "Alpha Centauri", "Tau Ceti", "Zhu Que", "Oasis", "Vir", "Gavel", "Ganesha", - "Saint Columbia", "Altair", "Sidhe", "New Ohio", "Parvati", "Mahi-Mahi", "Nyx", "New Seoul", - "Kess-Gendar", "Raphael", "Phact", "Altair", "El", "Eutopia", "Qerr'valis", "Qerrna-Lakirr", "Rarkajar", "Thoth", "Jahan's Post", "Kauq'xum", "Silk", "New Singapore", "Stove", "Viola", "Love", "Isavau's Gamble" ) - var/list/destination_types = list("dockyard", "station", "vessel", "waystation", "telecommunications satellite", "spaceport", "anomaly", "colony", "outpost", "debris field", "asteroid base", "research facility", "corporate installation", "freeport") + "Sol", "Alpha Centauri", "Tau Ceti", "Zhu Que", "Oasis", "Vir", "Gavel", "Ganesha", "Saint Columbia", "Altair", "Sidhe", "New Ohio", "Parvati", "Mahi-Mahi", "Nyx", "New Seoul", "Kess-Gendar", "Raphael", "Phact", "Altair", "El", "Eutopia", "Qerr'valis", "Qerrna-Lakirr", "Rarkajar", "Thoth", "Jahan's Post", "Kauq'xum", "Silk", "New Singapore", "Stove", "Viola", "Love", "Isavau's Gamble" ) + var/list/destination_types = list("a dockyard", "a station", "a vessel", "a waystation", "a telecommunications satellite", "a spaceport", "a colony", "an outpost", "a settlement", "a research facility", "a corporate installation", "a freeport", "an independent holding", "an asteroid base", "an orbital refinery") while(i) - destination_names.Add("a [pick(destination_types)] in [pick(star_names)]") + destination_names.Add("[pick(destination_types)] in [pick(star_names)]") i-- ////////////////////////////////////////////////////////////////////////////////// @@ -80,7 +80,7 @@ headquarters = "Luna, Sol" motto = "" - ship_prefixes = list("NSV" = "exploration", "NTV" = "hauling", "NDV" = "patrol", "NRV" = "emergency response", "NDV" = "asset protection") + ship_prefixes = list("NSV" = "an exploration", "NTV" = "a hauling", "NDV" = "a patrol", "NRV" = "an emergency response", "NDV" = "an asset protection") //Scientist naming scheme ship_names = list( "Bardeen", @@ -150,7 +150,7 @@ headquarters = "Luna, Sol" motto = "" - ship_prefixes = list("HTV" = "freight", "HLV" = "munitions resupply", "HDV" = "asset protection", "HDV" = "preemptive deployment") + ship_prefixes = list("HTV" = "a freight", "HLV" = "a munitions resupply", "HDV" = "an asset protection", "HDV" = "a preemptive deployment") //War God/Soldier Theme ship_names = list( "Ares", @@ -207,7 +207,7 @@ headquarters = "Toledo, New Ohio" motto = "" - ship_prefixes = list("VTV" = "transportation", "VMV" = "medical resupply", "VSV" = "research mission", "VRV" = "emergency medical support") + ship_prefixes = list("VTV" = "a transportation", "VMV" = "a medical resupply", "VSV" = "a research mission", "VRV" = "an emergency medical support") // Diona names ship_names = list( "Wind That Stirs The Waves", @@ -251,7 +251,7 @@ headquarters = "Earth, Sol" motto = "" - ship_prefixes = list("ZTV" = "transportation", "ZMV" = "medical resupply") + ship_prefixes = list("ZTV" = "a transportation", "ZMV" = "a medical resupply") destination_names = list() /datum/lore/organization/tsc/ward_takahashi @@ -269,7 +269,7 @@ headquarters = "" motto = "" - ship_prefixes = list("WFV" = "freight", "WTV" = "transport", "WDV" = "asset protection") + ship_prefixes = list("WFV" = "a freight", "WTV" = "a transport", "WDV" = "an asset protection") ship_names = list( "Comet", "Aurora", @@ -309,7 +309,7 @@ headquarters = "" motto = "" - ship_prefixes = list("BTV" = "transportation", "BSV" = "research exchange") + ship_prefixes = list("BCTV" = "a transportation", "BCSV" = "a research exchange") destination_names = list( "A medical facility in Angessa's Pearl" ) @@ -328,7 +328,7 @@ headquarters = "Shelf" motto = "" - ship_prefixes = list("MTV" = "freight") + ship_prefixes = list("MTV" = "a freight") // Culture names, because Anewbe told me so. ship_names = list( "Nervous Energy", @@ -447,7 +447,7 @@ headquarters = "" motto = "" - ship_prefixes = list("XTV" = "hauling", "XFV" = "bulk transport", "XIV" = "resupply") + ship_prefixes = list("XTV" = "a hauling", "XFV" = "a bulk transport", "XIV" = "a resupply") destination_names = list() /datum/lore/organization/tsc/antares @@ -460,7 +460,7 @@ headquarters = "" motto = "" - ship_prefixes = list("ATV" = "transport", "ARV" = "research", "ADV" = "routine patrol", "AEV" = "raw materials acquisition") + ship_prefixes = list("ATV" = "a transport", "ARV" = "a research", "ADV" = "a routine patrol", "AEV" = "a raw materials acquisition") destination_names = list() /datum/lore/organization/tsc/mbt @@ -473,7 +473,7 @@ headquarters = "Mars, Sol" motto = "" - ship_prefixes = list("TTV" = "transport", "TTV" = "luxury transit", "TTV" = "priority transit") + ship_prefixes = list("TTV" = "a transport", "TTV" = "a luxury transit", "TTV" = "a priority transit") destination_names = list() /datum/lore/organization/tsc/independent @@ -486,9 +486,55 @@ headquarters = "N/A" motto = "N/A" - ship_prefixes = list("IEV" = "prospecting", "IEC" = "prospecting", "IFV" = "bulk freight", "ITV" = "passenger transport", "ITC" = "just-in-time delivery", "IPV" = "patrol", "IHV" = "bounty hunting") + ship_prefixes = list("IEV" = "a prospecting", "IEC" = "a prospecting", "IFV" = "a bulk freight", "ITV" = "a passenger transport", "ITC" = "a just-in-time delivery", "IPV" = "a patrol", "IHV" = "a bounty hunting") destination_names = list() +// Other + +/datum/lore/organization/sysdef + name = "System Defense Force" + short_name = "SysDef" + acronym = "SDF" + desc = "Localized militias are used to secure systems throughout inhabited space. By levying and maintaining these local militia forces, governments can use their fleets for more important matters. System Defense Forces tend to be fairly poorly trained and modestly equipped compared to genuine military fleets, but are more than capable of contending with small-time pirates, and can generally stall greater threats long enough for reinforcements to arrive." + history = "" + work = "local security" + headquarters = "" + motto = "" + roaming = FALSE + scan_exempt = TRUE + autogenerate_destination_names = FALSE + + ship_prefixes = list ("SDB" = "a patrol", "SDF" = "a patrol", "SDV" = "a patrol", "SDB" = "an escort", "SDF" = "an escort", "SDV" = "an escort") + //TODO: optimistic names + destination_names = list( + "the outer system", + "the inner system", + "Waypoint Alpha", + "Waypoint Beta", + "Waypoint Gamma", + "Waypoint Delta", + "Waypoint Epsilon", + "Waypoint Zeta", + "Waypoint Eta", + "Waypoint Theta", + "Waypoint Iota", + "Waypoint Kappa", + "Waypoint Lambda", + "Waypoint Mu", + "Waypoint Nu", + "Waypoint Xi", + "Waypoint Omicron", + "Waypoint Pi", + "Waypoint Rho", + "Waypoint Sigma", + "Waypoint Tau", + "Waypoint Upsilon", + "Waypoint Phi", + "Waypoint Chi", + "Waypoint Psi", + "Waypoint Omega", + ) + // Governments /datum/lore/organization/gov/sifgov @@ -503,7 +549,7 @@ motto = "" autogenerate_destination_names = FALSE - ship_prefixes = list("SGA" = "hauling", "SGA" = "energy relay") + ship_prefixes = list("SGA" = "a hauling", "SGA" = "an energy relay") destination_names = list( "New Reykjavik on Sif", "Radiance Energy Chain", @@ -526,7 +572,7 @@ motto = "Nil Mortalibus Ardui Est" // Latin, because latin. Says 'Nothing is too steep for mortals'. autogenerate_destination_names = TRUE - ship_prefixes = list("SCG-T" = "transportation", "SCG-D" = "diplomatic", "SCG-F" = "freight") + ship_prefixes = list("SCG-T" = "a transportation", "SCG-D" = "a diplomatic", "SCG-F" = "a freight") destination_names = list( "Venus", "Earth", @@ -551,7 +597,8 @@ headquarters = "" motto = "" - ship_prefixes = list("WPF" = "secure freight", "WPS" = "logistics", "WPV" = "patrol", "WPH" = "bounty hunting", "WPX" = "experimental", "WPC" = "command", "WPI" = "mercy") + ship_prefixes = list("WPF" = "a secure freight", "WPS" = "a logistics", "WPV" = "a patrol", "WPH" = "a bounty hunting", "WPX" = "an experimental", "WPC" = "a command", "WPI" = "a mercy") + //TODO: animal names destination_names = list( "Wolfpack Command", "a WPS patrol fleet", @@ -569,6 +616,7 @@ headquarters = "" motto = "" - ship_prefixes = list("BSF" = "secure freight", "BSS" = "logistics", "BSV" = "patrol", "BSH" = "security", "BSX" = "experimental", "BSC" = "command") + ship_prefixes = list("BSF" = "a secure freight", "BSS" = "a logistics", "BSV" = "a patrol", "BSH" = "a security", "BSX" = "an experimental", "BSC" = "a command") + //TODO: edgy names destination_names = list() From f08204501f054f3b36edd3d97770f70c5aaceaf9 Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Mon, 12 Aug 2019 18:05:40 +0100 Subject: [PATCH 05/18] step 5: adjusted weights --- code/modules/busy_space/air_traffic.dm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm index 75b32c56948..8a43c3c160a 100644 --- a/code/modules/busy_space/air_traffic.dm +++ b/code/modules/busy_space/air_traffic.dm @@ -61,12 +61,11 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/shipname = pick(source.ship_names) //Pick a random ship name to go with it var/destname = pick(dest.destination_names) //Pick a random holding from the destination if(source.roaming == FALSE) //Check they're system-limited or no; if yes, reroute them to "home" destinations - destname = pick(dest.destination_names) + destname = pick(dest.destination_names) else //Maybe redundant but whatever destname = pick(source.destination_names) var/combined_name = "[owner] [prefix] [shipname]" - var/scan_exempt = source.scan_exempt var/alt_atc_names = list("[using_map.station_short] TraCon","[using_map.station_short] Control","[using_map.station_short] STC","[using_map.station_short] StarCon") var/wrong_atc_names = list("Sol Command","New Reykjavik StarCon", "[using_map.dock_name]") var/mission_noun = list("flight","mission","route","operation") @@ -94,7 +93,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller if(force_chatter_type) chatter_type = force_chatter_type else - chatter_type = pick(2;"emerg",5;"wrong_freq",2;"policescan",2;"policeflee",2;"pathwarning",2;"dockingrequestgeneric",2;"dockingrequestdenied",2;"dockingrequestsupply",2;"dockingrequestrepair",2;"dockingrequestmedical",2;"dockingrequestsecurity",2;"undockingrequest","normal") //Be nice to have wrong_lang... + chatter_type = pick(5;"emerg",5;"wrong_freq",25;"policescan",25;"policeflee",50;"pathwarning",50;"dockingrequestgeneric",50;"dockingrequestdenied",50;"dockingrequestsupply",50;"dockingrequestrepair",50;"dockingrequestmedical",50;"dockingrequestsecurity",50;"undockingrequest","normal") //Be nice to have wrong_lang... var/yes = prob(90) //Chance for them to say yes vs no @@ -121,7 +120,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller msg("[combined_name], this is [using_map.station_short] Control, copy. Switch to emergency responder channel [rand(700,999)].[rand(1,9)].") sleep(5 SECONDS) msg("Understood [using_map.station_short] Control, switching now.","[prefix] [shipname]") - if("policescan" && !scan_exempt) + 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.") var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","Apologies for the delay, you're clear.","Switch to [rand(700,999)].[rand(1,9)] and await further instruction.") @@ -134,7 +133,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller msg(complain,"[prefix] [shipname]") sleep(15 SECONDS) msg("[combined_name], this is [using_map.station_short] Control. Scan complete. [completed]") - if("policeflee" && !scan_exempt) + if("policeflee") 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!") msg("[combined_name], this is [using_map.station_short] Control, your ship has been flagged for routine inspection. Hold position and prepare to be scanned.") sleep(5 SECONDS) @@ -157,14 +156,14 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in.") sleep(5 SECONDS) - msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") + msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestdenied") var/reason = pick("we don't have any free landing pads right now","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","we can't verify your credentials","you're too far away, please close to ten thousand meters and resubmit your request") msg("[callname], this is [combined_name], requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) msg("[combined_name], this is [using_map.station_short] Control. Permission denied, [reason].") sleep(5 SECONDS) - msg("Understood, [using_map.station_short] Control.","[prefix] [shipname]") + msg("Understood, [using_map.station_short] Control.","[prefix] [shipname]") if("dockingrequestsupply") var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda","a little","rather","terribly","dreadfully") var/low_thing = pick("ammunition","oxygen","water","food","medical supplies","reaction mass","hydrogen fuel","phoron fuel","fuel","beans","air freshener","booze","beer") From 8c5fc46f05778f60ab41b6663ab1f816312ebc6a Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Mon, 12 Aug 2019 18:17:16 +0100 Subject: [PATCH 06/18] step 5a: minor grammar fix --- code/modules/busy_space/air_traffic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm index 8a43c3c160a..8fbebe749a3 100644 --- a/code/modules/busy_space/air_traffic.dm +++ b/code/modules/busy_space/air_traffic.dm @@ -207,7 +207,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("[combined_name], this is [using_map.station_short] Control. Permission granted. Docking clamps released. [safetravels].") else - msg("[callname], this is [combined_name] on a [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request].","[prefix] [shipname]") + msg("[callname], this is [combined_name] on [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request].","[prefix] [shipname]") sleep(5 SECONDS) msg("[combined_name], this is [using_map.station_short] Control, [response].") sleep(5 SECONDS) From 9f8ff544dc55e24e996df7ac4e2829c3134a91d0 Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Mon, 12 Aug 2019 19:49:14 +0100 Subject: [PATCH 07/18] step 6: the big ship name one --- code/modules/busy_space/air_traffic.dm | 9 +- code/modules/busy_space/organizations.dm | 344 ++++++++++++++--------- 2 files changed, 222 insertions(+), 131 deletions(-) diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm index 8fbebe749a3..4520dd5dd2b 100644 --- a/code/modules/busy_space/air_traffic.dm +++ b/code/modules/busy_space/air_traffic.dm @@ -93,7 +93,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller if(force_chatter_type) chatter_type = force_chatter_type else - chatter_type = pick(5;"emerg",5;"wrong_freq",25;"policescan",25;"policeflee",50;"pathwarning",50;"dockingrequestgeneric",50;"dockingrequestdenied",50;"dockingrequestsupply",50;"dockingrequestrepair",50;"dockingrequestmedical",50;"dockingrequestsecurity",50;"undockingrequest","normal") //Be nice to have wrong_lang... + chatter_type = pick(5;"emerg",5;"wrong_freq",25;"policescan",25;"policeflee",50;"pathwarning",50;"dockingrequestgeneric",50;"dockingrequestdenied",50;"dockingrequestsupply",50;"dockingrequestrepair",50;"dockingrequestmedical",50;"dockingrequestsecurity",50;"undockingrequest",50;"undockingdenied","normal") //Be nice to have wrong_lang... var/yes = prob(90) //Chance for them to say yes vs no @@ -152,7 +152,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller if("dockingrequestgeneric") var/appreciation = pick("Much appreciated","Many thanks","Understood") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") - msg("[callname], this is [combined_name], requesting permission to dock.","[prefix] [shipname]") + msg("[callname], this is [combined_name], stopping by on our way to [destname], requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in.") sleep(5 SECONDS) @@ -206,6 +206,11 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller msg("[callname], this is [combined_name], requesting permission to depart from pad [rand(1,24)].","[prefix] [shipname]") sleep(5 SECONDS) msg("[combined_name], this is [using_map.station_short] Control. Permission granted. Docking clamps released. [safetravels].") + if("undockingdenied") + var/denialreason = pick("Complete preflight checklist","Docking clamp malfunction, please hold","Fuel lines have not been secured","Ground crew are still on the pad","Loose containers are on the pad","Security is requesting a full cargo inspection","Your ship has been impounded for multiple security violations","You need to pass a quick engineering inspection","Your ship is currently under quarantine","Exhaust deflectors are not yet in position, please hold") + msg("[callname], this is [combined_name], requesting permission to depart from pad [rand(1,24)].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("Negative [combined_name], permission denied. [denialreason].") else msg("[callname], this is [combined_name] on [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request].","[prefix] [shipname]") sleep(5 SECONDS) diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm index 1191f3e3c58..a966d1765e8 100644 --- a/code/modules/busy_space/organizations.dm +++ b/code/modules/busy_space/organizations.dm @@ -31,20 +31,12 @@ "Hawk", "Haste", "Radiant", - "Luminous", - "Princess of Sol", - "King of the Mountain", - "Words and Changes", - "Katerina's Silhouette", - "Castle of Water", - "Jade Leviathan", - "Sword of Destiny", - "Ishtar's Grace" + "Luminous" ) var/list/destination_names = list() //Names of static holdings that the organization's ships visit regularly. - var/roaming = TRUE //am I allowed to roam out of system? - var/scan_exempt = FALSE //am I exempt from routine scans? - var/autogenerate_destination_names = TRUE + var/roaming = TRUE //am I allowed to roam out of system? if FALSE, pull from own destination list, not a second faction's + var/scan_exempt = FALSE //am I exempt from routine scans? currently unused + var/autogenerate_destination_names = TRUE //Pad the destination lists with some extra random ones? /datum/lore/organization/New() ..() @@ -199,7 +191,7 @@ Despite the suspicion and prejudice leveled at them for their alien origin, Vey-Med has obtained market dominance in \ the sale of medical equipment-- from surgical tools to large medical devices to the Oddyseus trauma response mecha \ and everything in between. Their equipment tends to be top-of-the-line, most obviously shown by their incredibly \ - human-like FBP designs. Vey's rise to stardom came from their introduction of ressurective 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 \ essential to modern cloning." history = "" @@ -251,7 +243,7 @@ headquarters = "Earth, Sol" motto = "" - ship_prefixes = list("ZTV" = "a transportation", "ZMV" = "a medical resupply") + ship_prefixes = list("ZTV" = "a transportation", "ZMV" = "a medical resupply", "ZRV" = "a medical research") destination_names = list() /datum/lore/organization/tsc/ward_takahashi @@ -283,14 +275,16 @@ "Void", "Asteroid", "Wormhole", - "Sunspots", + "Sunspot", "Supercluster", "Moon", + "Supermoon", "Anomaly", "Drift", "Stream", "Rift", - "Curtain" + "Curtain", + "Binary" ) destination_names = list() @@ -328,108 +322,9 @@ headquarters = "Shelf" motto = "" - ship_prefixes = list("MTV" = "a freight") - // Culture names, because Anewbe told me so. - ship_names = list( - "Nervous Energy", - "Prosthetic Conscience", - "Revisionist", - "Trade Surplus", - "Flexible Demeanour", - "Just Read The Instructions", - "Limiting Factor", - "Cargo Cult", - "Gunboat Diplomat", - "A Ship With A View", - "Cantankerous", - "I Thought He Was With You", - "Never Talk To Strangers", - "Sacrificial Victim", - "Unwitting Accomplice", - "Witting Accomplice", - "Bad For Business", - "Just Testing", - "Size Isn't Everything", - "Yawning Angel", - "Liveware Problem", - "Very Little Gravitas Indeed", - "Zero Gravitas", - "Gravitas Free Zone", - "Absolutely No You-Know-What", - "Existence Is Pain", - "I'm Walking Here", - "Screw Loose", - "Of Course I Still Love You", - "Limiting Factor", - "So Much For Subtley", - "Unfortunate Conflict Of Evidence", - "Prime Mover", - "It's One Of Ours", - "Thank You And Goodnight", - "Boo!", - "Reasonable Excuse", - "Honest Mistake", - "Appeal To Reason", - "My First Ship II", - "Hidden Income", - "Anything Legal Considered", - "New Toy", - "Me, I'm Always Counting", - "Just Five More Minutes", - "Are You Feeling It", - "Great White Snark", - "No Shirt No Shoes", - "Callsign", - "Three Ships in a Trenchcoat", - "Not Wearing Pants", - "Ridiculous Naming Convention", - "God Dammit Morpheus", - "It Seemed Like a Good Idea", - "Legs All the Way Up", - "Purchase Necessary", - "Some Assembly Required", - "Buy One Get None Free", - "BRB", - "SHIP NAME HERE", - "Questionable Ethics", - "Accept Most Substitutes", - "I Blame the Government", - "Garbled Gibberish", - "Thinking Emoji", - "Is This Thing On?", - "Make My Day", - "No Vox Here", - "Savings and Values", - "Secret Name", - "Can't Find My Keys", - "Look Over There!", - "Made You Look!", - "Take Nothing Seriously", - "It Comes In Lime, Too", - "Loot Me", - "Nothing To Declare", - "Sneaking Suspicion", - "Bass Ackwards", - "Good Things Come to Those Who Freight", - "Redundant Morality", - "Synthetic Goodwill", - "Your Ad Here", - "What Are We Plotting?", - "Set Phasers To Stun", - "Preemptive Defensive Strike", - "This Ship Is Spiders", - "Legitimate Trade Vessel", - "Please Don't Explode II", - "Get Off the Air", - "Definitely Unsinkable", - "We Didn't Do It!", - "Unrelated To That Other Ship", - "Not Reflecting The Opinons Of The Shareholders", - "Normal Ship Name", - "Define Offensive", - "Tiffany", - "My Other Ship is A Gestalt" - ) + ship_prefixes = list("MTV" = "a freight", "MDV" = "a market protection", "MSV" = "an outreach") + // Culture names removed! TODO: find new ones + //ship_names = list() destination_names = list( "a trade outpost in Shelf" ) @@ -449,7 +344,7 @@ ship_prefixes = list("XTV" = "a hauling", "XFV" = "a bulk transport", "XIV" = "a resupply") destination_names = list() - + /datum/lore/organization/tsc/antares name = "Antares Robotics Group" short_name = "Antares" @@ -459,7 +354,7 @@ work = "cybernetics manufacturer" headquarters = "" motto = "" - + ship_prefixes = list("ATV" = "a transport", "ARV" = "a research", "ADV" = "a routine patrol", "AEV" = "a raw materials acquisition") destination_names = list() @@ -503,9 +398,48 @@ roaming = FALSE scan_exempt = TRUE autogenerate_destination_names = FALSE - + ship_prefixes = list ("SDB" = "a patrol", "SDF" = "a patrol", "SDV" = "a patrol", "SDB" = "an escort", "SDF" = "an escort", "SDV" = "an escort") - //TODO: optimistic names + ship_names = list( + "Sword", + "Saber", + "Cutlass", + "Broadsword", + "Katar", + "Shamshir", + "Shashka", + "Epee", + "Estoc", + "Longsword", + "Katana", + "Baselard", + "Gladius", + "Kukri", + "Pick", + "Mattock", + "Hatchet", + "Machete", + "Axe", + "Tomahawk", + "Dirk", + "Dagger", + "Maul", + "Mace", + "Flail", + "Morningstar", + "Shillelagh", + "Cudgel", + "Truncheon", + "Hammer", + "Arbalest", + "Catapult", + "Trebuchet", + "Pike", + "Glaive", + "Halberd", + "Scythe", + "Spear" + ) destination_names = list( "the outer system", "the inner system", @@ -532,7 +466,7 @@ "Waypoint Phi", "Waypoint Chi", "Waypoint Psi", - "Waypoint Omega", + "Waypoint Omega" ) // Governments @@ -573,13 +507,81 @@ autogenerate_destination_names = TRUE ship_prefixes = list("SCG-T" = "a transportation", "SCG-D" = "a diplomatic", "SCG-F" = "a freight") + //earth's biggest impact craters + ship_names = list( + "Wabar", + "Kaali", + "Campo del Cielo", + "Henbury", + "Morasko", + "Boxhole", + "Macha", + "Rio Cuarto", + "Ilumetsa", + "Tenoumer", + "Xiuyan", + "Lonar", + "Agoudal", + "Tswaing", + "Zhamanshin", + "Bosumtwi", + "Elgygytgyn", + "Bigach", + "Karla", + "Karakul", + "Vredefort", + "Chicxulub", + "Sudbury", + "Popigai", + "Manicougan", + "Acraman", + "Morokweng", + "Kara", + "Beaverhead", + "Tookoonooka", + "Charlevoix", + "Siljan Ring", + "Montagnais", + "Araguinha", + "Chesapeake", + "Mjolnir", + "Puchezh-Katunki", + "Saint Martin", + "Woodleigh", + "Carswell", + "Clearwater West", + "Clearwater East", + "Manson", + "Slate", + "Yarrabubba", + "Keurusselka", + "Shoemaker", + "Mistastin", + "Kamensk", + "Steen", + "Strangways", + "Tunnunik", + "Boltysh", + "Nordlinger Ries", + "Presqu'ile", + "Haughton", + "Lappajarvi", + "Rochechouart", + "Gosses Bluff", + "Amelia Creek", + "Logancha", + "Obolon'", + "Nastapoka", + "Ishim", + "Bedout" + ) destination_names = list( "Venus", "Earth", "Luna", "Mars", "Titan", - "the Jovian subcluster", + "the Jovian subcluster" )// autogen will add a lot of other places as well. @@ -591,20 +593,55 @@ name = "Wolfpack Security" short_name = "WolfSec" acronym = "WPS" - desc = "Wolfpack Security is a merging of several much smaller freelance companies, and operates throughout civilized space. Unlike some companies, it operates no planetside facilities whatsoever, opting instead for larger flotillas that are serviced by innumerable smallcraft. As with any PMC there's no small amount of controversy surrounding them, but they try to keep their operations cleaner than their competitors." + desc = "Wolfpack Security is a merging of several much smaller freelance companies, and operates throughout civilized space. Unlike some companies, it operates no planetside facilities whatsoever, opting instead for larger flotillas that are serviced by innumerable smallcraft. As with any PMC there's no small amount of controversy surrounding them, but they try to keep their operations cleaner than their competitors. They're fairly well known for running 'mercy' operations, which are low-cost no-strings-attached contracts for those in dire need." history = "" work = "mercenary contractors" headquarters = "" motto = "" + roaming = FALSE + autogenerate_destination_names = TRUE ship_prefixes = list("WPF" = "a secure freight", "WPS" = "a logistics", "WPV" = "a patrol", "WPH" = "a bounty hunting", "WPX" = "an experimental", "WPC" = "a command", "WPI" = "a mercy") - //TODO: animal names + ship_names = list( + "Wolf", + "Bear", + "Eagle", + "Falcon", + "Shark", + "Fox", + "Mongoose", + "Bloodhound", + "Rhino", + "Tiger", + "Leopard", + "Lion", + "Piranha", + "Crocodile", + "Alligator", + "Recluse", + "Tarantula", + "Scorpion", + "Orca", + "Coyote", + "Jackal", + "Hyena", + "Hornet", + "Wasp", + "Sealion", + "Viper", + "Cobra", + "Python", + "Anaconda", + "Rattlesnake" + ) destination_names = list( "Wolfpack Command", "a WPS patrol fleet", "a WPS flotilla", "a WPS training fleet", - ) + "a WPS logistics fleet", + "a contract location" + ) //some basics, padded with autogen /datum/lore/organization/mil/blackstar name = "Blackstar Legion" @@ -615,8 +652,57 @@ work = "mercenary contractors" headquarters = "" motto = "" + roaming = FALSE + autogenerate_destination_names = TRUE ship_prefixes = list("BSF" = "a secure freight", "BSS" = "a logistics", "BSV" = "a patrol", "BSH" = "a security", "BSX" = "an experimental", "BSC" = "a command") - //TODO: edgy names - destination_names = list() + //edgy mythological critters! + ship_names = list( + "Dragon", + "Chimera", + "Titan", + "Hekatonchires", + "Gorgon", + "Scylla", + "Minotaur", + "Banshee", + "Basilisk", + "Black Dog", + "Centaur", + "Cerberus", + "Charybdis", + "Cyclops", + "Cynocephalus", + "Demon", + "Daemon", + "Echidna", + "Goblin", + "Golem", + "Griffin", + "Hobgoblin", + "Hydra", + "Imp", + "Ladon", + "Manticore", + "Medusa", + "Ogre", + "Pegasus", + "Sasquatch", + "Shade", + "Siren", + "Sphinx", + "Typhon", + "Valkyrie", + "Vampir", + "Wendigo", + "Werewolf", + "Wraith" + ) + destination_names = list( + "Blackstar Command", + "a Blackstar training site", + "a Blackstar logistical depot", + "a Blackstar-held shipyard", + "a contract location" + ) From dca4f48cbac301b4eac8729df15532391ea2acec Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Mon, 12 Aug 2019 23:19:30 +0100 Subject: [PATCH 08/18] step 7: the next big ship name one --- code/modules/busy_space/air_traffic.dm | 14 +- code/modules/busy_space/organizations.dm | 252 ++++++++++++++++++++++- 2 files changed, 248 insertions(+), 18 deletions(-) diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm index 4520dd5dd2b..373ac201ec9 100644 --- a/code/modules/busy_space/air_traffic.dm +++ b/code/modules/busy_space/air_traffic.dm @@ -158,15 +158,15 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestdenied") - var/reason = pick("we don't have any free landing pads right now","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","we can't verify your credentials","you're too far away, please close to ten thousand meters and resubmit your request") + var/reason = pick("we don't have any free landing pads right now","we don't have any free landing pads large enough for your vessel","we don't have the necessary facilities for your vessel type or class","we can't verify your credentials","you're too far away, please close to ten thousand meters and resubmit your request") msg("[callname], this is [combined_name], requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Permission denied, [reason].") + msg("[combined_name], this is [using_map.station_short] Control. Request denied, [reason].") sleep(5 SECONDS) msg("Understood, [using_map.station_short] Control.","[prefix] [shipname]") if("dockingrequestsupply") var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda","a little","rather","terribly","dreadfully") - var/low_thing = pick("ammunition","oxygen","water","food","medical supplies","reaction mass","hydrogen fuel","phoron fuel","fuel","beans","air freshener","booze","beer") + var/low_thing = pick("ammunition","oxygen","water","food","repair supplies","medical supplies","crew","reaction mass","hydrogen fuel","phoron fuel","fuel",10;"tea",10;"coffee",10;"pizza",10;"beer") //low chance of a less serious shortage var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We're [intensifier] low on [low_thing] and need to resupply. Requesting permission to dock.","[prefix] [shipname]") @@ -175,7 +175,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestrepair") - var/damagestate = pick(" We're showing 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","We're hearing some weird noises from the engines","Our artificial gravity generator has failed","Our life support is failing","Our water recycling system has shorted out","Our systems are glitching out","We got hit by a solar flare","We had a close call with an asteroid","We have a fuel leak","We have depressurized compartments") + var/damagestate = pick("We're showing 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","We're hearing some weird noises from the engines","Our artificial gravity generator has failed","Our life support is failing","Our water recycling system has shorted 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 fuel leak","We have depressurized compartments","We have a hull breach","Our shield generator is on the fritz","Our RCS is acting up") var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. [damagestate]. Requesting permission to dock for repairs.","[prefix] [shipname]") @@ -184,7 +184,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestmedical") - var/medicalstate = pick("multiple casualties","several cases of radiation sickness","an unknown virus","a critically injured VIP","sick refugees","multiple cases of food poisoning","injured passengers","wounded marines","a delicate situation") + 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","wounded marines","a delicate situation","a pregnant passenger") var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We have [medicalstate] on board. Requesting permission to dock for medical assistance.","[prefix] [shipname]") @@ -193,7 +193,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestsecurity") - var/securitystate = pick("several prisoners","a captured pirate","a wanted man","stowaways","incompetent shipjackers","a delicate situation") + var/securitystate = pick("several prisoners","a captured pirate","a wanted man","stowaways","incompetent shipjackers","a delicate situation","a disorderly passenger","disorderly passengers","ex-mutineers",10;"a raging case of spiders") //gotta have a little something to lighten the mood now and then var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We have [securitystate] on board and require security assistance. Requesting permission to dock.","[prefix] [shipname]") @@ -208,7 +208,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller msg("[combined_name], this is [using_map.station_short] Control. Permission granted. Docking clamps released. [safetravels].") if("undockingdenied") var/denialreason = pick("Complete preflight checklist","Docking clamp malfunction, please hold","Fuel lines have not been secured","Ground crew are still on the pad","Loose containers are on the pad","Security is requesting a full cargo inspection","Your ship has been impounded for multiple security violations","You need to pass a quick engineering inspection","Your ship is currently under quarantine","Exhaust deflectors are not yet in position, please hold") - msg("[callname], this is [combined_name], requesting permission to depart from pad [rand(1,24)].","[prefix] [shipname]") + msg("[callname], this is [combined_name], requesting permission to depart from pad [rand(1,42)].","[prefix] [shipname]") sleep(5 SECONDS) msg("Negative [combined_name], permission denied. [denialreason].") else diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm index a966d1765e8..30e86809f8d 100644 --- a/code/modules/busy_space/organizations.dm +++ b/code/modules/busy_space/organizations.dm @@ -15,6 +15,8 @@ "Beacon", "Signal", "Freedom", + "Liberty", + "Enterprise", "Glory", "Axiom", "Eternal", @@ -43,8 +45,8 @@ if(autogenerate_destination_names) // Lets pad out the destination names. var/i = rand(6, 10) var/list/star_names = list( - "Sol", "Alpha Centauri", "Tau Ceti", "Zhu Que", "Oasis", "Vir", "Gavel", "Ganesha", "Saint Columbia", "Altair", "Sidhe", "New Ohio", "Parvati", "Mahi-Mahi", "Nyx", "New Seoul", "Kess-Gendar", "Raphael", "Phact", "Altair", "El", "Eutopia", "Qerr'valis", "Qerrna-Lakirr", "Rarkajar", "Thoth", "Jahan's Post", "Kauq'xum", "Silk", "New Singapore", "Stove", "Viola", "Love", "Isavau's Gamble" ) - var/list/destination_types = list("a dockyard", "a station", "a vessel", "a waystation", "a telecommunications satellite", "a spaceport", "a colony", "an outpost", "a settlement", "a research facility", "a corporate installation", "a freeport", "an independent holding", "an asteroid base", "an orbital refinery") + "Sol", "Alpha Centauri", "Tau Ceti", "Zhu Que", "Oasis", "Vir", "Gavel", "Ganesha", "Saint Columbia", "Altair", "Sidhe", "New Ohio", "Parvati", "Mahi-Mahi", "Nyx", "New Seoul", "Kess-Gendar", "Raphael", "Phact", "Altair", "El", "Eutopia", "Qerr'valis", "Qerrna-Lakirr", "Rarkajar", "Thoth", "Jahan's Post", "Kauq'xum", "Silk", "New Singapore", "Stove", "Viola", "Love", "Isavau's Gamble", "Shelf") + var/list/destination_types = list("a dockyard", "a station", "a vessel", "a waystation", "a telecommunications satellite", "a spaceport", "a colony", "an outpost", "a settlement", "a research facility", "a corporate installation", "a freeport", "an independent holding", "an asteroid base", "an orbital refinery", "a trade outpost") while(i) destination_names.Add("[pick(destination_types)] in [pick(star_names)]") i-- @@ -126,8 +128,6 @@ if(string_to_test in destination_names) destination_names.Remove(string_to_test) - - /datum/lore/organization/tsc/hephaestus name = "Hephaestus Industries" short_name = "Hephaestus" @@ -244,6 +244,64 @@ motto = "" ship_prefixes = list("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 = list( + "Averroes", + "Avicenna", + "Banting", + "Billroth", + "Blackwell", + "Blalock", + "Charaka", + "Chauliac", + "Cushing", + "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() /datum/lore/organization/tsc/ward_takahashi @@ -305,7 +363,7 @@ ship_prefixes = list("BCTV" = "a transportation", "BCSV" = "a research exchange") destination_names = list( - "A medical facility in Angessa's Pearl" + "a medical facility in Angessa's Pearl" ) /datum/lore/organization/tsc/morpheus @@ -323,8 +381,64 @@ motto = "" ship_prefixes = list("MTV" = "a freight", "MDV" = "a market protection", "MSV" = "an outreach") - // Culture names removed! TODO: find new ones - //ship_names = list() + ship_names = list( + "Hydrogen", + "Helium", + "Lithium", + "Beryllium", + "Boron", + "Carbon", + "Nitrogen", + "Oxygen", + "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" + ) destination_names = list( "a trade outpost in Shelf" ) @@ -345,6 +459,7 @@ ship_prefixes = list("XTV" = "a hauling", "XFV" = "a bulk transport", "XIV" = "a resupply") destination_names = list() +//Keek&Allakai&Peesh's new TSC /datum/lore/organization/tsc/antares name = "Antares Robotics Group" short_name = "Antares" @@ -356,19 +471,110 @@ motto = "" ship_prefixes = list("ATV" = "a transport", "ARV" = "a research", "ADV" = "a routine patrol", "AEV" = "a raw materials acquisition") + //ship names: rocks! no rolling + ship_names = list( + "Adakite", + "Andesite", + "Basalt", + "Basanite", + "Diorite", + "Dunite", + "Gabbro", + "Granite", + "Harzburgite", + "Ignimbrite", + "Kimberlite", + "Komatiite", + "Norite", + "Obsidian", + "Pegmatite", + "Picrite", + "Pumice", + "Rhyolite", + "Scoria", + "Syenite", + "Tachylyte", + "Wehrlite", + "Arkose", + "Chert", + "Dolomite", + "Flint", + "Laterite", + "Marl", + "Oolite", + "Sandstone", + "Shale", + "Anthracite", + "Gneiss", + "Granulite", + "Mylonite", + "Schist", + "Skarn", + "Slate" + ) destination_names = list() /datum/lore/organization/tsc/mbt name = "Major Bill's Transportation" short_name = "Major Bill's" acronym = "MBT" - desc = "The most popular courier service and starliner, Major Bill's is an unassuming corporation whose greatest asset is their low cost and brand recognition. Major Bill’s is known, perhaps unfavorably, for its mascot, Major Bill, a cartoonish military figure that spouts quotable slogans. Their motto is \"With Major Bill's, you won't pay major bills!\", an earworm much of the galaxy longs to forget." + desc = "The most popular courier service and starliner, Major Bill's is an unassuming corporation whose greatest asset is their low cost and brand recognition. Major Bill’s is known, perhaps unfavorably, for its mascot, Major Bill, a cartoonish military figure that spouts quotable slogans. Their motto is \"With Major Bill's, you won't pay major bills!\", an earworm much of the galaxy longs to forget. Their ships are named after some of Earth's greatest rivers." history = "" work = "courier and passenger transit" headquarters = "Mars, Sol" motto = "" ship_prefixes = list("TTV" = "a transport", "TTV" = "a luxury transit", "TTV" = "a priority transit") + //ship names: big rivers + ship_names = list ( + "Nile", + "Kagera", + "Nyabarongo", + "Mwogo", + "Rukarara", + "Amazon", + "Ucayali", + "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() /datum/lore/organization/tsc/independent @@ -386,7 +592,8 @@ // Other -/datum/lore/organization/sysdef +//SPACE LAW +/datum/lore/organization/other/sysdef name = "System Defense Force" short_name = "SysDef" acronym = "SDF" @@ -400,6 +607,7 @@ autogenerate_destination_names = FALSE ship_prefixes = list ("SDB" = "a patrol", "SDF" = "a patrol", "SDV" = "a patrol", "SDB" = "an escort", "SDF" = "an escort", "SDV" = "an escort") + //ship names: weapons ship_names = list( "Sword", "Saber", @@ -434,6 +642,7 @@ "Arbalest", "Catapult", "Trebuchet", + "Longbow", "Pike", "Glaive", "Halberd", @@ -469,8 +678,28 @@ "Waypoint Omega" ) +/* //placeholder for a religious-themed faction +/datum/lore/organization/other/starchurch + name = "Church of the Stars" + short_name = "Church of the Stars" //shortnames are for heathens and heretics! + acronym = "CotS" + desc = "" + history = "" + work = "spreading the good word" + headquarters = "" + motto = "" + roaming = TRUE + autogenerate_destination_names = TRUE + + ship_prefixes = list ("CSO" = "an outreach", "CSM" = "a mercy", "CSA" = "an aid", "CSP" = "a pilgramage") + //ship names: prophets? + destination_names = list( + ) +*/ + // Governments +/* /datum/lore/organization/gov/sifgov name = "Sif Governmental Authority" short_name = "SifGov" @@ -491,6 +720,7 @@ "a telecommunications satellite", "Vir Interstellar Spaceport" ) +*/ /datum/lore/organization/gov/solgov name = "Solar Confederate Government" @@ -585,9 +815,8 @@ )// autogen will add a lot of other places as well. -// To be expanded upon later, once the military lore gets sorted out. - // Military +// Used for Para-Military groups right now! Pair of placeholder-ish PMCs. /datum/lore/organization/mil/wolfpack name = "Wolfpack Security" @@ -643,6 +872,7 @@ "a contract location" ) //some basics, padded with autogen +//intentionally edgy a.f. /datum/lore/organization/mil/blackstar name = "Blackstar Legion" short_name = "Blackstar" From 413f762857e18fc592cb9fa106fb3a82236c38a7 Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Tue, 13 Aug 2019 05:35:03 +0100 Subject: [PATCH 09/18] step 8: the space control, destinations, travel advisory, and indentation one --- code/modules/busy_space/air_traffic.dm | 90 ++- code/modules/busy_space/organizations.dm | 985 ++++++++++++----------- 2 files changed, 542 insertions(+), 533 deletions(-) diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm index 373ac201ec9..afdacc281ba 100644 --- a/code/modules/busy_space/air_traffic.dm +++ b/code/modules/busy_space/air_traffic.dm @@ -3,8 +3,8 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller /datum/lore/atc_controller - var/delay_max = 2 MINUTES //How long between ATC traffic, max. Default is 25 mins. - var/delay_min = 4 MINUTES //How long between ATC traffic, min. Default is 40 mins. + var/delay_max = 1 MINUTES //How long between ATC traffic, max. Default is 25 mins. + var/delay_min = 3 MINUTES //How long between ATC traffic, min. Default is 40 mins. var/backoff_delay = 5 MINUTES //How long to back off if we can't talk and want to. Default is 5 mins. var/next_message //When the next message should happen in world.time var/force_chatter_type //Force a specific type of messages @@ -30,7 +30,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller /datum/lore/atc_controller/proc/msg(var/message,var/sender) ASSERT(message) - global_announcer.autosay("[message]", sender ? sender : "[using_map.station_short] Control") + global_announcer.autosay("[message]", sender ? sender : "[using_map.station_short] Space Control") /datum/lore/atc_controller/proc/reroute_traffic(var/yes = 1) if(yes) @@ -49,21 +49,18 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller /datum/lore/atc_controller/proc/random_convo() var/one = pick(loremaster.organizations) //These will pick an index, not an instance - var/two = pick(loremaster.organizations) + // var/two = pick(loremaster.organizations) //I'm not actually used for anything any more var/datum/lore/organization/source = loremaster.organizations[one] //Resolve to the instances - var/datum/lore/organization/dest = loremaster.organizations[two] + // var/datum/lore/organization/dest = loremaster.organizations[two] //we don't need to do this, this isn't useful for how destinations work!!! //Let's get some mission parameters var/owner = source.short_name //Use the short name var/prefix = pick(source.ship_prefixes) //Pick a random prefix var/mission = source.ship_prefixes[prefix] //The value of the prefix is the mission type that prefix does - var/shipname = pick(source.ship_names) //Pick a random ship name to go with it - var/destname = pick(dest.destination_names) //Pick a random holding from the destination - if(source.roaming == FALSE) //Check they're system-limited or no; if yes, reroute them to "home" destinations - destname = pick(dest.destination_names) - else //Maybe redundant but whatever - destname = pick(source.destination_names) + var/shipname = pick(source.ship_names) //Pick a random ship name to + var/destname = pick(source.destination_names) //destination is where? + // var/destdebug = "source" //fallback var/combined_name = "[owner] [prefix] [shipname]" var/alt_atc_names = list("[using_map.station_short] TraCon","[using_map.station_short] Control","[using_map.station_short] STC","[using_map.station_short] StarCon") @@ -93,7 +90,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller if(force_chatter_type) chatter_type = force_chatter_type else - chatter_type = pick(5;"emerg",5;"wrong_freq",25;"policescan",25;"policeflee",50;"pathwarning",50;"dockingrequestgeneric",50;"dockingrequestdenied",50;"dockingrequestsupply",50;"dockingrequestrepair",50;"dockingrequestmedical",50;"dockingrequestsecurity",50;"undockingrequest",50;"undockingdenied","normal") //Be nice to have wrong_lang... + chatter_type = pick(5;"emerg",5;"wrong_freq",25;"policescan",25;"policeflee",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdenied",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest",30;"undockingdenied","normal") //Be nice to have wrong_lang... var/yes = prob(90) //Chance for them to say yes vs no @@ -105,48 +102,56 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller // var/full_response // var/full_closure + // sometimes you just gotta print something somewhere accessible + // msg("[owner] [prefix] [shipname], [destdebug], [mission] [destname]","Debug Print") + switch(chatter_type) if("wrong_freq") callname = pick(wrong_atc_names) - msg("[callname], this is [combined_name] on a [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request].","[prefix] [shipname]") + msg("[callname], this is [combined_name] on [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request].","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control, wrong frequency. Switch to [rand(700,999)].[rand(1,9)].") + msg("[combined_name], this is [using_map.station_short] Space Control, wrong frequency. Switch to [rand(700,999)].[rand(1,9)].") sleep(5 SECONDS) - msg("[using_map.station_short] Control, understood, apologies.","[prefix] [shipname]") + msg("[using_map.station_short] Space Control, understood, apologies.","[prefix] [shipname]") if("emerg") var/problem = pick("hull breaches on multiple decks","unknown life forms on board","a drive about to go critical","asteroids impacting the hull","a total loss of engine power","hostile ships closing fast","unidentified boarders") msg("This is [combined_name] declaring an emergency! We have [problem]!","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control, copy. Switch to emergency responder channel [rand(700,999)].[rand(1,9)].") + msg("[combined_name], this is [using_map.station_short] Space Control, copy. Switch to emergency responder channel [rand(700,999)].[rand(1,9)].") sleep(5 SECONDS) - msg("Understood [using_map.station_short] Control, switching now.","[prefix] [shipname]") + msg("Understood [using_map.station_short] Space Control, switching now.","[prefix] [shipname]") 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.") var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","Apologies for the delay, you're clear.","Switch to [rand(700,999)].[rand(1,9)] and await further instruction.") - msg("[combined_name], this is [using_map.station_short] Control, your ship has been flagged for routine inspection. Hold position and prepare to be scanned.") + msg("[combined_name], this is [using_map.station_short] Space Control, your ship has been flagged for routine inspection. Hold position and prepare to be scanned.") sleep(5 SECONDS) - msg("[confirm] [using_map.station_short] Control, holding position.","[prefix] [shipname]") + msg("[confirm] [using_map.station_short] Space Control, holding position.","[prefix] [shipname]") sleep(5 SECONDS) msg("Your compliance is appreciated, [combined_name]. Scan commencing.") sleep(10 SECONDS) msg(complain,"[prefix] [shipname]") sleep(15 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Scan complete. [completed]") + msg("[combined_name], this is [using_map.station_short] Space Control. Scan complete. [completed]") if("policeflee") 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!") - msg("[combined_name], this is [using_map.station_short] Control, your ship has been flagged for routine inspection. Hold position and prepare to be scanned.") + msg("[combined_name], this is [using_map.station_short] Space Control, your ship has been flagged for routine inspection. Hold position and prepare to be scanned.") sleep(5 SECONDS) msg("[uhoh]","[prefix] [shipname]") sleep(5 SECONDS) - msg("This is [using_map.station_short] Control to all local security vessels; interdict and detain [combined_name]. Control out.") + msg("This is [using_map.station_short] Space Control to all local security vessels; interdict and detain [combined_name]. Control out.") + if("traveladvisory") + var/flightwarning = pick("Solar flare activity spiking along main flight lanes","Pirate activity is on the rise, stay close to SysDef vessels","Quarantine fleet is passing through, please observe minimum safe distance","Traffic volume is higher than normal, expect processing delays","Anomalous bluespace activity detected, 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, watch for potential impactors","Pirate and SysDef forces are currently engaged in skirmishes throughout the system","Mercenary bounty hunters are currently conducting aggressive piracy suppression operations") + msg("This is [using_map.station_short] Space Control to all vessels in this system. Priority travel advisory follows.") + sleep(5 SECONDS) + msg("[flightwarning]. Control out.") if("pathwarning") var/navhazard = pick ("a pocket of intense radiation","a pocket of unstable gas","a debris field","a secure installation","an active combat zone","a quarantined ship","a quarantined installation","a quarantined sector") var/confirm = pick("Understood","Roger that","Affirmative","Thanks for the heads up") var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you") - msg("[combined_name], this is [using_map.station_short] Control, your ship is approaching [navhazard], please adjust heading to [rand(1,360)].") + msg("[combined_name], this is [using_map.station_short] Space Control, your ship is approaching [navhazard], please adjust heading to [rand(1,360)].") sleep(5 SECONDS) - msg("[confirm] [using_map.station_short] Control, adjusting course.","[prefix] [shipname]") + msg("[confirm] [using_map.station_short] Space Control, adjusting course.","[prefix] [shipname]") sleep(5 SECONDS) msg("Your compliance is appreciated, [combined_name]. [safetravels].") if("dockingrequestgeneric") @@ -154,16 +159,16 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name], stopping by on our way to [destname], requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in.") + msg("[combined_name], this is [using_map.station_short] Space Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in.") sleep(5 SECONDS) - msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") + msg("[appreciation], [using_map.station_short] Space Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestdenied") var/reason = pick("we don't have any free landing pads right now","we don't have any free landing pads large enough for your vessel","we don't have the necessary facilities for your vessel type or class","we can't verify your credentials","you're too far away, please close to ten thousand meters and resubmit your request") msg("[callname], this is [combined_name], requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Request denied, [reason].") + msg("[combined_name], this is [using_map.station_short] Space Control. Request denied, [reason].") sleep(5 SECONDS) - msg("Understood, [using_map.station_short] Control.","[prefix] [shipname]") + msg("Understood, [using_map.station_short] Space Control.","[prefix] [shipname]") if("dockingrequestsupply") var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda","a little","rather","terribly","dreadfully") var/low_thing = pick("ammunition","oxygen","water","food","repair supplies","medical supplies","crew","reaction mass","hydrogen fuel","phoron fuel","fuel",10;"tea",10;"coffee",10;"pizza",10;"beer") //low chance of a less serious shortage @@ -171,52 +176,55 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We're [intensifier] low on [low_thing] and need to resupply. Requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in.") + msg("[combined_name], this is [using_map.station_short] Space Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in.") sleep(5 SECONDS) - msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") + msg("[appreciation], [using_map.station_short] Space Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestrepair") var/damagestate = pick("We're showing 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","We're hearing some weird noises from the engines","Our artificial gravity generator has failed","Our life support is failing","Our water recycling system has shorted 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 fuel leak","We have depressurized compartments","We have a hull breach","Our shield generator is on the fritz","Our RCS is acting up") var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. [damagestate]. Requesting permission to dock for repairs.","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in. Repair crews are standing by, contact them on channel [rand(700,999)].[rand(1,9)].") + msg("[combined_name], this is [using_map.station_short] Space Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in. Repair crews are standing by, contact them on channel [rand(700,999)].[rand(1,9)].") sleep(5 SECONDS) - msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") + msg("[appreciation], [using_map.station_short] Space Control. [dockingplan]","[prefix] [shipname]") 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","wounded marines","a delicate situation","a pregnant passenger") var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We have [medicalstate] on board. Requesting permission to dock for medical assistance.","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in. Medtechs are standing by, contact them on channel [rand(700,999)].[rand(1,9)].") + msg("[combined_name], this is [using_map.station_short] Space Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in. Medtechs are standing by, contact them on channel [rand(700,999)].[rand(1,9)].") sleep(5 SECONDS) - msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") + msg("[appreciation], [using_map.station_short] Space Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestsecurity") var/securitystate = pick("several prisoners","a captured pirate","a wanted man","stowaways","incompetent shipjackers","a delicate situation","a disorderly passenger","disorderly passengers","ex-mutineers",10;"a raging case of spiders") //gotta have a little something to lighten the mood now and then var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We have [securitystate] on board and require security assistance. Requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in. Security teams are standing by, contact them on channel [rand(700,999)].[rand(1,9)].") + msg("[combined_name], this is [using_map.station_short] Space Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in. Security teams are standing by, contact them on channel [rand(700,999)].[rand(1,9)].") sleep(5 SECONDS) - msg("[appreciation], [using_map.station_short] Control. [dockingplan]","[prefix] [shipname]") + msg("[appreciation], [using_map.station_short] Space Control. [dockingplan]","[prefix] [shipname]") if("undockingrequest") var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you") - msg("[callname], this is [combined_name], requesting permission to depart from pad [rand(1,24)].","[prefix] [shipname]") + var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too") + msg("[callname], this is [combined_name], requesting permission to depart from pad [rand(1,42)].","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control. Permission granted. Docking clamps released. [safetravels].") + msg("[combined_name], this is [using_map.station_short] Space Control. Permission granted. Docking clamps released. [safetravels].") + sleep(5 SECONDS) + msg("[thanks], [using_map.station_short] Space Control. This is the [prefix] [shipname] setting course for [destname], over and out.","[prefix] [shipname]") if("undockingdenied") var/denialreason = pick("Complete preflight checklist","Docking clamp malfunction, please hold","Fuel lines have not been secured","Ground crew are still on the pad","Loose containers are on the pad","Security is requesting a full cargo inspection","Your ship has been impounded for multiple security violations","You need to pass a quick engineering inspection","Your ship is currently under quarantine","Exhaust deflectors are not yet in position, please hold") msg("[callname], this is [combined_name], requesting permission to depart from pad [rand(1,42)].","[prefix] [shipname]") sleep(5 SECONDS) - msg("Negative [combined_name], permission denied. [denialreason].") + msg("Negative [combined_name], request denied. [denialreason].") else msg("[callname], this is [combined_name] on [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request].","[prefix] [shipname]") sleep(5 SECONDS) - msg("[combined_name], this is [using_map.station_short] Control, [response].") + msg("[combined_name], this is [using_map.station_short] Space Control, [response].") sleep(5 SECONDS) - msg("[using_map.station_short] Control, [yes ? "thank you" : "understood"], good day.","[prefix] [shipname]") + msg("[using_map.station_short] Space Control, [yes ? "thank you" : "understood"], good day.","[prefix] [shipname]") /* //OLD BLOCK, for reference //Ship sends request to ATC diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm index 30e86809f8d..dd9a7ed32e0 100644 --- a/code/modules/busy_space/organizations.dm +++ b/code/modules/busy_space/organizations.dm @@ -11,39 +11,37 @@ var/list/ship_prefixes = list() //Some might have more than one! Like NanoTrasen. Value is the mission they perform, e.g. ("ABC" = "mission desc") var/list/ship_names = list( //Names of spaceships. This is a mostly generic list that all the other organizations inherit from if they don't have anything better. - "Kestrel", - "Beacon", - "Signal", - "Freedom", - "Liberty", - "Enterprise", - "Glory", - "Axiom", - "Eternal", - "Harmony", - "Light", - "Discovery", - "Endeavour", - "Explorer", - "Swift", - "Dragonfly", - "Ascendant", - "Tenacious", - "Pioneer", - "Hawk", - "Haste", - "Radiant", - "Luminous" - ) + "Kestrel", + "Beacon", + "Signal", + "Freedom", + "Liberty", + "Enterprise", + "Glory", + "Axiom", + "Eternal", + "Harmony", + "Light", + "Discovery", + "Endeavour", + "Explorer", + "Swift", + "Dragonfly", + "Ascendant", + "Tenacious", + "Pioneer", + "Hawk", + "Haste", + "Radiant", + "Luminous" + ) var/list/destination_names = list() //Names of static holdings that the organization's ships visit regularly. - var/roaming = TRUE //am I allowed to roam out of system? if FALSE, pull from own destination list, not a second faction's - var/scan_exempt = FALSE //am I exempt from routine scans? currently unused var/autogenerate_destination_names = TRUE //Pad the destination lists with some extra random ones? /datum/lore/organization/New() ..() if(autogenerate_destination_names) // Lets pad out the destination names. - var/i = rand(6, 10) + var/i = rand(7, 12) //was 6-10, now 7-12, slight increase for flavor, especially in 'starved' lists var/list/star_names = list( "Sol", "Alpha Centauri", "Tau Ceti", "Zhu Que", "Oasis", "Vir", "Gavel", "Ganesha", "Saint Columbia", "Altair", "Sidhe", "New Ohio", "Parvati", "Mahi-Mahi", "Nyx", "New Seoul", "Kess-Gendar", "Raphael", "Phact", "Altair", "El", "Eutopia", "Qerr'valis", "Qerrna-Lakirr", "Rarkajar", "Thoth", "Jahan's Post", "Kauq'xum", "Silk", "New Singapore", "Stove", "Viola", "Love", "Isavau's Gamble", "Shelf") var/list/destination_types = list("a dockyard", "a station", "a vessel", "a waystation", "a telecommunications satellite", "a spaceport", "a colony", "an outpost", "a settlement", "a research facility", "a corporate installation", "a freeport", "an independent holding", "an asteroid base", "an orbital refinery", "a trade outpost") @@ -77,48 +75,49 @@ ship_prefixes = list("NSV" = "an exploration", "NTV" = "a hauling", "NDV" = "a patrol", "NRV" = "an emergency response", "NDV" = "an asset protection") //Scientist naming scheme ship_names = list( - "Bardeen", - "Einstein", - "Feynman", - "Sagan", - "Tyson", - "Galilei", - "Jans", - "Fhriede", - "Franklin", - "Tesla", - "Curie", - "Darwin", - "Newton", - "Pasteur", - "Bell", - "Mendel", - "Kepler", - "Edision", - "Cavendish", - "Nye", - "Hawking", - "Aristotle", - "Von Braun", - "Kaku", - "Oppenheimer", - "Renwick", - "Hubble", - "Alcubierre", - "Robineau", - "Glass" - ) + "Bardeen", + "Einstein", + "Feynman", + "Sagan", + "Tyson", + "Galilei", + "Jans", + "Fhriede", + "Franklin", + "Tesla", + "Curie", + "Darwin", + "Newton", + "Pasteur", + "Bell", + "Mendel", + "Kepler", + "Edision", + "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( - "NSS Exodus in Nyx", - "NCS Northern Star in Vir", - "NLS Southern Cross in Vir", - "NAS Vir Central Command", - "a dockyard orbiting Sif", - "an asteroid orbiting Kara", - "an asteroid orbiting Rota", - "Vir Interstellar Spaceport" - ) + "NT HQ on Luna", + "NSS Exodus in Nyx", + "NCS Northern Star in Vir", + "NLS Southern Cross in Vir", + "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() ..() @@ -145,43 +144,44 @@ ship_prefixes = list("HTV" = "a freight", "HLV" = "a munitions resupply", "HDV" = "an asset protection", "HDV" = "a preemptive deployment") //War God/Soldier Theme ship_names = list( - "Ares", - "Athena", - "Grant", - "Custer", - "Puller", - "Nike", - "Bellona", - "Leonides", - "Bast", - "Jackson", - "Lee", - "Annan", - "Chi Yu", - "Shiva", - "Tyr", - "Nobunaga", - "Xerxes", - "Alexander", - "McArthur", - "Samson", - "Oya", - "Nemain", - "Caesar", - "Augustus", - "Sekhmet", - "Ku", - "Indra", - "Innana", - "Ishtar", - "Qamaits", - "'Oro", - ) + "Ares", + "Athena", + "Grant", + "Custer", + "Puller", + "Nike", + "Bellona", + "Leonides", + "Bast", + "Jackson", + "Lee", + "Annan", + "Chi Yu", + "Shiva", + "Tyr", + "Nobunaga", + "Xerxes", + "Alexander", + "McArthur", + "Samson", + "Oya", + "Nemain", + "Caesar", + "Augustus", + "Sekhmet", + "Ku", + "Indra", + "Innana", + "Ishtar", + "Qamaits", + "'Oro", + ) destination_names = list( - "a SolGov dockyard on Luna", - "a Fleet outpost in the Almach Rim", - "a Fleet outpost on the Moghes border" - ) + "our headquarters on Luna", + "a SolGov dockyard on Luna", + "a Fleet outpost in the Almach Rim", + "a Fleet outpost on the Moghes border" + ) /datum/lore/organization/tsc/vey_med name = "Vey-Medical" //The Wiki displays them as Vey-Medical. @@ -202,31 +202,32 @@ ship_prefixes = list("VTV" = "a transportation", "VMV" = "a medical resupply", "VSV" = "a research mission", "VRV" = "an emergency medical support") // Diona names ship_names = list( - "Wind That Stirs The Waves", - "Sustained Note Of Metal", - "Bright Flash Reflecting Off Glass", - "Veil Of Mist Concealing The Rock", - "Thin Threads Intertwined", - "Clouds Drifting Amid Storm", - "Loud Note And Breaking", - "Endless Vistas Expanding Before The Void", - "Fire Blown Out By Wind", - "Star That Fades From View", - "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" - ) + "Wind That Stirs The Waves", + "Sustained Note Of Metal", + "Bright Flash Reflecting Off Glass", + "Veil Of Mist Concealing The Rock", + "Thin Threads Intertwined", + "Clouds Drifting Amid Storm", + "Loud Note And Breaking", + "Endless Vistas Expanding Before The Void", + "Fire Blown Out By Wind", + "Star That Fades From View", + "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( - "a research facility in Samsara", - "a SDTF near Ue-Orsi", - "a sapientarian mission in the Almach Rim" - ) + "our headquarters on Toledo, New Ohio", + "a research facility in Samsara", + "an SDTF near Ue-Orsi", + "a sapientarian mission in the Almach Rim" + ) /datum/lore/organization/tsc/zeng_hu name = "Zeng-Hu pharmaceuticals" @@ -302,7 +303,9 @@ "Yegorov", "Xichun" ) - destination_names = list() + destination_names = list( + "our headquarters on Earth" + ) /datum/lore/organization/tsc/ward_takahashi name = "Ward-Takahashi General Manufacturing Conglomerate" @@ -321,29 +324,29 @@ ship_prefixes = list("WFV" = "a freight", "WTV" = "a transport", "WDV" = "an asset protection") ship_names = list( - "Comet", - "Aurora", - "Supernova", - "Nebula", - "Galaxy", - "Starburst", - "Constellation", - "Pulsar", - "Quark", - "Void", - "Asteroid", - "Wormhole", - "Sunspot", - "Supercluster", - "Moon", - "Supermoon", - "Anomaly", - "Drift", - "Stream", - "Rift", - "Curtain", - "Binary" - ) + "Comet", + "Aurora", + "Supernova", + "Nebula", + "Galaxy", + "Starburst", + "Constellation", + "Pulsar", + "Quark", + "Void", + "Asteroid", + "Wormhole", + "Sunspot", + "Supercluster", + "Moon", + "Supermoon", + "Anomaly", + "Drift", + "Stream", + "Rift", + "Curtain", + "Binary" + ) destination_names = list() /datum/lore/organization/tsc/bishop @@ -363,7 +366,7 @@ ship_prefixes = list("BCTV" = "a transportation", "BCSV" = "a research exchange") destination_names = list( - "a medical facility in Angessa's Pearl" + "a medical facility in Angessa's Pearl" ) /datum/lore/organization/tsc/morpheus @@ -382,65 +385,66 @@ ship_prefixes = list("MTV" = "a freight", "MDV" = "a market protection", "MSV" = "an outreach") ship_names = list( - "Hydrogen", - "Helium", - "Lithium", - "Beryllium", - "Boron", - "Carbon", - "Nitrogen", - "Oxygen", - "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" - ) + "Hydrogen", + "Helium", + "Lithium", + "Beryllium", + "Boron", + "Carbon", + "Nitrogen", + "Oxygen", + "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" + ) destination_names = list( - "a trade outpost in Shelf" + "our headquarters in Shelf", + "a trade outpost in Shelf" ) /datum/lore/organization/tsc/xion @@ -527,54 +531,54 @@ ship_prefixes = list("TTV" = "a transport", "TTV" = "a luxury transit", "TTV" = "a priority transit") //ship names: big rivers ship_names = list ( - "Nile", - "Kagera", - "Nyabarongo", - "Mwogo", - "Rukarara", - "Amazon", - "Ucayali", - "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" - ) + "Nile", + "Kagera", + "Nyabarongo", + "Mwogo", + "Rukarara", + "Amazon", + "Ucayali", + "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() /datum/lore/organization/tsc/independent @@ -602,81 +606,79 @@ work = "local security" headquarters = "" motto = "" - roaming = FALSE - scan_exempt = TRUE autogenerate_destination_names = FALSE ship_prefixes = list ("SDB" = "a patrol", "SDF" = "a patrol", "SDV" = "a patrol", "SDB" = "an escort", "SDF" = "an escort", "SDV" = "an escort") //ship names: weapons ship_names = list( - "Sword", - "Saber", - "Cutlass", - "Broadsword", - "Katar", - "Shamshir", - "Shashka", - "Epee", - "Estoc", - "Longsword", - "Katana", - "Baselard", - "Gladius", - "Kukri", - "Pick", - "Mattock", - "Hatchet", - "Machete", - "Axe", - "Tomahawk", - "Dirk", - "Dagger", - "Maul", - "Mace", - "Flail", - "Morningstar", - "Shillelagh", - "Cudgel", - "Truncheon", - "Hammer", - "Arbalest", - "Catapult", - "Trebuchet", - "Longbow", - "Pike", - "Glaive", - "Halberd", - "Scythe", - "Spear" - ) + "Sword", + "Saber", + "Cutlass", + "Broadsword", + "Katar", + "Shamshir", + "Shashka", + "Epee", + "Estoc", + "Longsword", + "Katana", + "Baselard", + "Gladius", + "Kukri", + "Pick", + "Mattock", + "Hatchet", + "Machete", + "Axe", + "Tomahawk", + "Dirk", + "Dagger", + "Maul", + "Mace", + "Flail", + "Morningstar", + "Shillelagh", + "Cudgel", + "Truncheon", + "Hammer", + "Arbalest", + "Catapult", + "Trebuchet", + "Longbow", + "Pike", + "Glaive", + "Halberd", + "Scythe", + "Spear" + ) destination_names = list( - "the outer system", - "the inner system", - "Waypoint Alpha", - "Waypoint Beta", - "Waypoint Gamma", - "Waypoint Delta", - "Waypoint Epsilon", - "Waypoint Zeta", - "Waypoint Eta", - "Waypoint Theta", - "Waypoint Iota", - "Waypoint Kappa", - "Waypoint Lambda", - "Waypoint Mu", - "Waypoint Nu", - "Waypoint Xi", - "Waypoint Omicron", - "Waypoint Pi", - "Waypoint Rho", - "Waypoint Sigma", - "Waypoint Tau", - "Waypoint Upsilon", - "Waypoint Phi", - "Waypoint Chi", - "Waypoint Psi", - "Waypoint Omega" - ) + "the outer system", + "the inner system", + "Waypoint Alpha", + "Waypoint Beta", + "Waypoint Gamma", + "Waypoint Delta", + "Waypoint Epsilon", + "Waypoint Zeta", + "Waypoint Eta", + "Waypoint Theta", + "Waypoint Iota", + "Waypoint Kappa", + "Waypoint Lambda", + "Waypoint Mu", + "Waypoint Nu", + "Waypoint Xi", + "Waypoint Omicron", + "Waypoint Pi", + "Waypoint Rho", + "Waypoint Sigma", + "Waypoint Tau", + "Waypoint Upsilon", + "Waypoint Phi", + "Waypoint Chi", + "Waypoint Psi", + "Waypoint Omega" + ) /* //placeholder for a religious-themed faction /datum/lore/organization/other/starchurch @@ -688,7 +690,6 @@ work = "spreading the good word" headquarters = "" motto = "" - roaming = TRUE autogenerate_destination_names = TRUE ship_prefixes = list ("CSO" = "an outreach", "CSM" = "a mercy", "CSA" = "an aid", "CSP" = "a pilgramage") @@ -714,12 +715,12 @@ ship_prefixes = list("SGA" = "a hauling", "SGA" = "an energy relay") destination_names = list( - "New Reykjavik on Sif", - "Radiance Energy Chain", - "a dockyard orbiting Sif", - "a telecommunications satellite", - "Vir Interstellar Spaceport" - ) + "New Reykjavik on Sif", + "Radiance Energy Chain", + "a dockyard orbiting Sif", + "a telecommunications satellite", + "Vir Interstellar Spaceport" + ) */ /datum/lore/organization/gov/solgov @@ -739,80 +740,81 @@ ship_prefixes = list("SCG-T" = "a transportation", "SCG-D" = "a diplomatic", "SCG-F" = "a freight") //earth's biggest impact craters ship_names = list( - "Wabar", - "Kaali", - "Campo del Cielo", - "Henbury", - "Morasko", - "Boxhole", - "Macha", - "Rio Cuarto", - "Ilumetsa", - "Tenoumer", - "Xiuyan", - "Lonar", - "Agoudal", - "Tswaing", - "Zhamanshin", - "Bosumtwi", - "Elgygytgyn", - "Bigach", - "Karla", - "Karakul", - "Vredefort", - "Chicxulub", - "Sudbury", - "Popigai", - "Manicougan", - "Acraman", - "Morokweng", - "Kara", - "Beaverhead", - "Tookoonooka", - "Charlevoix", - "Siljan Ring", - "Montagnais", - "Araguinha", - "Chesapeake", - "Mjolnir", - "Puchezh-Katunki", - "Saint Martin", - "Woodleigh", - "Carswell", - "Clearwater West", - "Clearwater East", - "Manson", - "Slate", - "Yarrabubba", - "Keurusselka", - "Shoemaker", - "Mistastin", - "Kamensk", - "Steen", - "Strangways", - "Tunnunik", - "Boltysh", - "Nordlinger Ries", - "Presqu'ile", - "Haughton", - "Lappajarvi", - "Rochechouart", - "Gosses Bluff", - "Amelia Creek", - "Logancha", - "Obolon'", - "Nastapoka", - "Ishim", - "Bedout" - ) + "Wabar", + "Kaali", + "Campo del Cielo", + "Henbury", + "Morasko", + "Boxhole", + "Macha", + "Rio Cuarto", + "Ilumetsa", + "Tenoumer", + "Xiuyan", + "Lonar", + "Agoudal", + "Tswaing", + "Zhamanshin", + "Bosumtwi", + "Elgygytgyn", + "Bigach", + "Karla", + "Karakul", + "Vredefort", + "Chicxulub", + "Sudbury", + "Popigai", + "Manicougan", + "Acraman", + "Morokweng", + "Kara", + "Beaverhead", + "Tookoonooka", + "Charlevoix", + "Siljan Ring", + "Montagnais", + "Araguinha", + "Chesapeake", + "Mjolnir", + "Puchezh-Katunki", + "Saint Martin", + "Woodleigh", + "Carswell", + "Clearwater West", + "Clearwater East", + "Manson", + "Slate", + "Yarrabubba", + "Keurusselka", + "Shoemaker", + "Mistastin", + "Kamensk", + "Steen", + "Strangways", + "Tunnunik", + "Boltysh", + "Nordlinger Ries", + "Presqu'ile", + "Haughton", + "Lappajarvi", + "Rochechouart", + "Gosses Bluff", + "Amelia Creek", + "Logancha", + "Obolon'", + "Nastapoka", + "Ishim", + "Bedout" + ) destination_names = list( - "Venus", - "Earth", - "Luna", - "Mars", - "Titan", - "the Jovian subcluster" - )// autogen will add a lot of other places as well. + "Venus", + "Earth", + "Luna", + "Mars", + "Titan", + "the Jovian subcluster" + ) + // autogen will add a lot of other places as well. // Military @@ -827,50 +829,50 @@ work = "mercenary contractors" headquarters = "" motto = "" - roaming = FALSE autogenerate_destination_names = TRUE ship_prefixes = list("WPF" = "a secure freight", "WPS" = "a logistics", "WPV" = "a patrol", "WPH" = "a bounty hunting", "WPX" = "an experimental", "WPC" = "a command", "WPI" = "a mercy") ship_names = list( - "Wolf", - "Bear", - "Eagle", - "Falcon", - "Shark", - "Fox", - "Mongoose", - "Bloodhound", - "Rhino", - "Tiger", - "Leopard", - "Lion", - "Piranha", - "Crocodile", - "Alligator", - "Recluse", - "Tarantula", - "Scorpion", - "Orca", - "Coyote", - "Jackal", - "Hyena", - "Hornet", - "Wasp", - "Sealion", - "Viper", - "Cobra", - "Python", - "Anaconda", - "Rattlesnake" + "Wolf", + "Bear", + "Eagle", + "Falcon", + "Shark", + "Fox", + "Mongoose", + "Bloodhound", + "Rhino", + "Tiger", + "Leopard", + "Lion", + "Piranha", + "Crocodile", + "Alligator", + "Recluse", + "Tarantula", + "Scorpion", + "Orca", + "Coyote", + "Jackal", + "Hyena", + "Hornet", + "Wasp", + "Sealion", + "Viper", + "Cobra", + "Python", + "Anaconda", + "Rattlesnake" ) destination_names = list( - "Wolfpack Command", - "a WPS patrol fleet", - "a WPS flotilla", - "a WPS training fleet", - "a WPS logistics fleet", - "a contract location" - ) //some basics, padded with autogen + "Wolfpack Command", + "a WPS patrol fleet", + "a WPS flotilla", + "a WPS training fleet", + "a WPS logistics fleet", + "a contract location" + ) + //some basics, padded with autogen //intentionally edgy a.f. /datum/lore/organization/mil/blackstar @@ -882,57 +884,56 @@ work = "mercenary contractors" headquarters = "" motto = "" - roaming = FALSE autogenerate_destination_names = TRUE ship_prefixes = list("BSF" = "a secure freight", "BSS" = "a logistics", "BSV" = "a patrol", "BSH" = "a security", "BSX" = "an experimental", "BSC" = "a command") //edgy mythological critters! ship_names = list( - "Dragon", - "Chimera", - "Titan", - "Hekatonchires", - "Gorgon", - "Scylla", - "Minotaur", - "Banshee", - "Basilisk", - "Black Dog", - "Centaur", - "Cerberus", - "Charybdis", - "Cyclops", - "Cynocephalus", - "Demon", - "Daemon", - "Echidna", - "Goblin", - "Golem", - "Griffin", - "Hobgoblin", - "Hydra", - "Imp", - "Ladon", - "Manticore", - "Medusa", - "Ogre", - "Pegasus", - "Sasquatch", - "Shade", - "Siren", - "Sphinx", - "Typhon", - "Valkyrie", - "Vampir", - "Wendigo", - "Werewolf", - "Wraith" - ) + "Dragon", + "Chimera", + "Titan", + "Hekatonchires", + "Gorgon", + "Scylla", + "Minotaur", + "Banshee", + "Basilisk", + "Black Dog", + "Centaur", + "Cerberus", + "Charybdis", + "Cyclops", + "Cynocephalus", + "Demon", + "Daemon", + "Echidna", + "Goblin", + "Golem", + "Griffin", + "Hobgoblin", + "Hydra", + "Imp", + "Ladon", + "Manticore", + "Medusa", + "Ogre", + "Pegasus", + "Sasquatch", + "Shade", + "Siren", + "Sphinx", + "Typhon", + "Valkyrie", + "Vampir", + "Wendigo", + "Werewolf", + "Wraith" + ) destination_names = list( - "Blackstar Command", - "a Blackstar training site", - "a Blackstar logistical depot", - "a Blackstar-held shipyard", - "a contract location" - ) + "Blackstar Command", + "a Blackstar training site", + "a Blackstar logistical depot", + "a Blackstar-held shipyard", + "a contract location" + ) From 91d111c2172dcf43c3701379151a2df986b0779a Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Tue, 13 Aug 2019 21:58:21 +0100 Subject: [PATCH 10/18] step 9: the one with a new event and some other changes --- code/modules/busy_space/air_traffic.dm | 46 ++++++---- code/modules/busy_space/organizations.dm | 105 +++++++++++++++++++++-- 2 files changed, 129 insertions(+), 22 deletions(-) diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm index afdacc281ba..d267536c912 100644 --- a/code/modules/busy_space/air_traffic.dm +++ b/code/modules/busy_space/air_traffic.dm @@ -49,18 +49,23 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller /datum/lore/atc_controller/proc/random_convo() var/one = pick(loremaster.organizations) //These will pick an index, not an instance - // var/two = pick(loremaster.organizations) //I'm not actually used for anything any more + var/two = pick(loremaster.organizations) //I'm now used for fake IFFs var/datum/lore/organization/source = loremaster.organizations[one] //Resolve to the instances - // var/datum/lore/organization/dest = loremaster.organizations[two] //we don't need to do this, this isn't useful for how destinations work!!! + var/datum/lore/organization/fakeiff = loremaster.organizations[two] //For new fun stuff //Let's get some mission parameters var/owner = source.short_name //Use the short name var/prefix = pick(source.ship_prefixes) //Pick a random prefix var/mission = source.ship_prefixes[prefix] //The value of the prefix is the mission type that prefix does - var/shipname = pick(source.ship_names) //Pick a random ship name to + var/shipname = pick(source.ship_names) //Pick a random ship name var/destname = pick(source.destination_names) //destination is where? // var/destdebug = "source" //fallback + + var/fakeowner = fakeiff.short_name + var/fakeprefix = pick(fakeiff.ship_prefixes) //Pick a random prefix + var/fakeshipname = pick(fakeiff.ship_names) //Pick a random ship name + var/combined_fake_name = "[fakeowner] [fakeprefix] [fakeshipname]" var/combined_name = "[owner] [prefix] [shipname]" var/alt_atc_names = list("[using_map.station_short] TraCon","[using_map.station_short] Control","[using_map.station_short] STC","[using_map.station_short] StarCon") @@ -90,7 +95,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller if(force_chatter_type) chatter_type = force_chatter_type else - chatter_type = pick(5;"emerg",5;"wrong_freq",25;"policescan",25;"policeflee",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdenied",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest",30;"undockingdenied","normal") //Be nice to have wrong_lang... + chatter_type = pick(5;"emerg",5;"wrong_freq",25;"policescan",25;"policeflee",10;"strangeactivity",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdenied",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest",30;"undockingdenied","normal") //Be nice to have wrong_lang... var/yes = prob(90) //Chance for them to say yes vs no @@ -124,7 +129,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller 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.") var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","Apologies for the delay, you're clear.","Switch to [rand(700,999)].[rand(1,9)] and await further instruction.") - msg("[combined_name], this is [using_map.station_short] Space Control, your ship has been flagged for routine inspection. Hold position and prepare to be scanned.") + msg("[combined_name], this is [using_map.station_short] Space Control, your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.") sleep(5 SECONDS) msg("[confirm] [using_map.station_short] Space Control, holding position.","[prefix] [shipname]") sleep(5 SECONDS) @@ -134,14 +139,20 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(15 SECONDS) msg("[combined_name], this is [using_map.station_short] Space Control. Scan complete. [completed]") if("policeflee") - 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!") - msg("[combined_name], this is [using_map.station_short] Space Control, your ship has been flagged for routine inspection. Hold position and prepare to be scanned.") + 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!","I'm afraid I can't do that, Control.") + msg("[combined_fake_name], this is [using_map.station_short] Space Control, your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.") sleep(5 SECONDS) - msg("[uhoh]","[prefix] [shipname]") + msg("[uhoh]","[fakeprefix] [fakeshipname]") sleep(5 SECONDS) - msg("This is [using_map.station_short] Space Control to all local security vessels; interdict and detain [combined_name]. Control out.") + msg("This is [using_map.station_short] Space Control to all local SDF assets, the [combined_fake_name] is broadcasting false IFF codes. Registry updated to [combined_name]: vector to interdict and detain. Control out.") + if("strangeactivity") + var/concern = pick("It looks like they're under attack.","I think they're being boarded.","We're not reading any lifesigns aboard.","There's a Vox Marauder right on top of them!","They're maneuvering erratically.","We're picking up some strange radiation patterns.","We can see multiple hull breaches from here.","They're leaking fuel everywhere.","Their drives are misfiring.") + var/confirm = pick("Roger that","Affirmative","Understood","Thanks for the heads up") + msg("[callname], this is [combined_name]. We're seeing some strange activity over on [combined_fake_name]. [concern]","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[confirm], [combined_name]. Dispatching SysDef assets to investigate.") if("traveladvisory") - var/flightwarning = pick("Solar flare activity spiking along main flight lanes","Pirate activity is on the rise, stay close to SysDef vessels","Quarantine fleet is passing through, please observe minimum safe distance","Traffic volume is higher than normal, expect processing delays","Anomalous bluespace activity detected, 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, watch for potential impactors","Pirate and SysDef forces are currently engaged in skirmishes throughout the system","Mercenary bounty hunters are currently conducting aggressive piracy suppression operations") + 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 SysDef vessels","Vox Marauder activity is higher than usual, report any unusual activity to the nearest System Defense Boat","Quarantine fleet is passing through the system along route [rand(1,100)], please observe minimum safe distance","A prison fleet 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, 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 SysDef forces are currently engaged in skirmishes throughout the system, please steer clear of any active combat zones","A fuel tanker has collided with a cargo liner near route [rand(1,100)], watch for loose containers and dispersed fuel","","Bounty hunters are currently searching for a wanted fugitive","Mercenary contractors are currently conducting aggressive [pick("piracy","marauder")] suppression operations",10;"It's space carp breeding season. Stars have mercy on you all, because the carp won't") msg("This is [using_map.station_short] Space Control to all vessels in this system. Priority travel advisory follows.") sleep(5 SECONDS) msg("[flightwarning]. Control out.") @@ -155,7 +166,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("Your compliance is appreciated, [combined_name]. [safetravels].") if("dockingrequestgeneric") - var/appreciation = pick("Much appreciated","Many thanks","Understood") + var/appreciation = pick("Much appreciated","Many thanks","Understood","Cheers") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name], stopping by on our way to [destname], requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) @@ -171,8 +182,8 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller msg("Understood, [using_map.station_short] Space Control.","[prefix] [shipname]") if("dockingrequestsupply") var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda","a little","rather","terribly","dreadfully") - var/low_thing = pick("ammunition","oxygen","water","food","repair supplies","medical supplies","crew","reaction mass","hydrogen fuel","phoron fuel","fuel",10;"tea",10;"coffee",10;"pizza",10;"beer") //low chance of a less serious shortage - var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") + var/low_thing = pick("ammunition","oxygen","water","food","repair supplies","medical supplies","crew","reaction mass","hydrogen fuel","phoron fuel","fuel",5;"tea",5;"coffee",5;"pizza",5;"beer") //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") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We're [intensifier] low on [low_thing] and need to resupply. Requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) @@ -181,7 +192,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller msg("[appreciation], [using_map.station_short] Space Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestrepair") var/damagestate = pick("We're showing 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","We're hearing some weird noises from the engines","Our artificial gravity generator has failed","Our life support is failing","Our water recycling system has shorted 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 fuel leak","We have depressurized compartments","We have a hull breach","Our shield generator is on the fritz","Our RCS is acting up") - var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") + var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. [damagestate]. Requesting permission to dock for repairs.","[prefix] [shipname]") sleep(5 SECONDS) @@ -189,8 +200,8 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Space Control. [dockingplan]","[prefix] [shipname]") 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","wounded marines","a delicate situation","a pregnant passenger") - var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") + 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") + var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We have [medicalstate] on board. Requesting permission to dock for medical assistance.","[prefix] [shipname]") sleep(5 SECONDS) @@ -198,7 +209,8 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Space Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestsecurity") - var/securitystate = pick("several prisoners","a captured pirate","a wanted man","stowaways","incompetent shipjackers","a delicate situation","a disorderly passenger","disorderly passengers","ex-mutineers",10;"a raging case of spiders") //gotta have a little something to lighten the mood now and then + var/species = pick("human","unathi","lizard","tajaran","skrell","akula","promethean","sergal","synthetic","teshari","vulpkanin","zorren","unidentified","mixed-species") + 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","stolen goods","a container full of confiscated contraband","containers full of confiscated contraband",5;"a raging case of spiders") //gotta have a little something to lighten the mood now and then var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We have [securitystate] on board and require security assistance. Requesting permission to dock.","[prefix] [shipname]") diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm index dd9a7ed32e0..d7c14e471bc 100644 --- a/code/modules/busy_space/organizations.dm +++ b/code/modules/busy_space/organizations.dm @@ -43,7 +43,7 @@ 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 in 'starved' lists var/list/star_names = list( - "Sol", "Alpha Centauri", "Tau Ceti", "Zhu Que", "Oasis", "Vir", "Gavel", "Ganesha", "Saint Columbia", "Altair", "Sidhe", "New Ohio", "Parvati", "Mahi-Mahi", "Nyx", "New Seoul", "Kess-Gendar", "Raphael", "Phact", "Altair", "El", "Eutopia", "Qerr'valis", "Qerrna-Lakirr", "Rarkajar", "Thoth", "Jahan's Post", "Kauq'xum", "Silk", "New Singapore", "Stove", "Viola", "Love", "Isavau's Gamble", "Shelf") + "Sol", "Alpha Centauri", "Sirius", "Vega", "Tau Ceti", "Zhu Que", "Oasis", "Vir", "Gavel", "Ganesha", "Saint Columbia", "Altair", "Sidhe", "New Ohio", "Parvati", "Mahi-Mahi", "Nyx", "New Seoul", "Kess-Gendar", "Raphael", "Phact", "Altair", "El", "Eutopia", "Qerr'valis", "Qerrna-Lakirr", "Rarkajar", "Vazzend", "Thoth", "Jahan's Post", "Kauq'xum", "Silk", "New Singapore", "Stove", "Viola", "Love", "Isavau's Gamble", "Shelf") var/list/destination_types = list("a dockyard", "a station", "a vessel", "a waystation", "a telecommunications satellite", "a spaceport", "a colony", "an outpost", "a settlement", "a research facility", "a corporate installation", "a freeport", "an independent holding", "an asteroid base", "an orbital refinery", "a trade outpost") while(i) destination_names.Add("[pick(destination_types)] in [pick(star_names)]") @@ -365,9 +365,64 @@ motto = "" ship_prefixes = list("BCTV" = "a transportation", "BCSV" = "a research exchange") + //famous mechanical engineers + ship_names = ( + "Al-Jazari", + "Al-Muradi", + "Al-Zarqali", + "Archimedes", + "Arkwright", + "Armstrong", + "Babbage", + "Barsanti", + "Benz", + "Bessemer", + "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 name = "Morpheus Cyberkinetics" @@ -384,6 +439,7 @@ motto = "" ship_prefixes = list("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) ship_names = list( "Hydrogen", "Helium", @@ -442,9 +498,15 @@ "Caesium", "Barium" ) + //some hebrew alphabet destinations for a little extra unusualness destination_names = list( "our headquarters in Shelf", - "a trade outpost in Shelf" + "a trade outpost in Shelf", + "research outpost Aleph", + "logistics depot Dalet", + "research installation Zayin", + "research base Tsadi", + "manufacturing facility Samekh" ) /datum/lore/organization/tsc/xion @@ -461,6 +523,38 @@ motto = "" ship_prefixes = list("XTV" = "a hauling", "XFV" = "a bulk transport", "XIV" = "a resupply") + //engineering terms + /* + ship_names = list( + "Absorbance", + "Acceleration", + "Actuator", + "Adhesion", + "Albedo", + "Alkane", + "Alloy", + "Ampere", + "Amplitude", + "Anion", + "Anode", + "Barometer", + "Battery", + "Baud", + "Beam", + "Belt", + "Biocatalysis", + "Boiler", + "Boltzmann", + "Boson", + "Bromide", + "Capacitance", + "Cartesian", + "Cathode", + "Centroid", + "Chromate", + "Cohesion", + ) + */ destination_names = list() //Keek&Allakai&Peesh's new TSC @@ -601,14 +695,14 @@ name = "System Defense Force" short_name = "SysDef" acronym = "SDF" - desc = "Localized militias are used to secure systems throughout inhabited space. By levying and maintaining these local militia forces, governments can use their fleets for more important matters. System Defense Forces tend to be fairly poorly trained and modestly equipped compared to genuine military fleets, but are more than capable of contending with small-time pirates, and can generally stall greater threats long enough for reinforcements to arrive." + desc = "Localized militias are used to secure systems throughout inhabited space. By levying and maintaining these local militia forces, governments can use their fleets for more important matters. System Defense Forces tend to be fairly poorly trained and modestly equipped compared to genuine military fleets, but are more than capable of contending with small-time pirates, and can generally stall greater threats long enough for reinforcements to arrive. They're also typically responsible for space-based SAR operations in their system." history = "" work = "local security" headquarters = "" motto = "" autogenerate_destination_names = FALSE - ship_prefixes = list ("SDB" = "a patrol", "SDF" = "a patrol", "SDV" = "a patrol", "SDB" = "an escort", "SDF" = "an escort", "SDV" = "an escort") + ship_prefixes = list ("SDB" = "a patrol", "SDF" = "a patrol", "SDV" = "a patrol", "SDB" = "an escort", "SDF" = "an escort", "SDV" = "an escort", "SAR" = "a search and rescue", "SDT" = "a logistics", "SDT" = "a resupply") //b = boat, f = fleet, v = vessel, t = tender //ship names: weapons ship_names = list( "Sword", @@ -812,6 +906,7 @@ "Luna", "Mars", "Titan", + "Europa", "the Jovian subcluster" ) // autogen will add a lot of other places as well. From b3fbc03261eb6c33d9800f38e7e0d9bd854fb296 Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Tue, 13 Aug 2019 22:22:58 +0100 Subject: [PATCH 11/18] step 10: the one with W-T and Xion names --- code/modules/busy_space/organizations.dm | 78 +++++++++++++++--------- 1 file changed, 48 insertions(+), 30 deletions(-) diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm index d7c14e471bc..f29ea9770f9 100644 --- a/code/modules/busy_space/organizations.dm +++ b/code/modules/busy_space/organizations.dm @@ -325,7 +325,11 @@ ship_prefixes = list("WFV" = "a freight", "WTV" = "a transport", "WDV" = "an asset protection") ship_names = list( "Comet", + "Meteor", + "Heliosphere", + "Bolide", "Aurora", + "Nova", "Supernova", "Nebula", "Galaxy", @@ -338,6 +342,9 @@ "Wormhole", "Sunspot", "Supercluster", + "Supergiant", + "Protostar", + "Magnetar", "Moon", "Supermoon", "Anomaly", @@ -345,6 +352,8 @@ "Stream", "Rift", "Curtain", + "Planetar", + "Quasar", "Binary" ) destination_names = list() @@ -523,38 +532,47 @@ motto = "" ship_prefixes = list("XTV" = "a hauling", "XFV" = "a bulk transport", "XIV" = "a resupply") - //engineering terms - /* + //martian mountains ship_names = list( - "Absorbance", - "Acceleration", - "Actuator", - "Adhesion", - "Albedo", - "Alkane", - "Alloy", - "Ampere", - "Amplitude", - "Anion", - "Anode", - "Barometer", - "Battery", - "Baud", - "Beam", - "Belt", - "Biocatalysis", - "Boiler", - "Boltzmann", - "Boson", - "Bromide", - "Capacitance", - "Cartesian", - "Cathode", - "Centroid", - "Chromate", - "Cohesion", + "Olympus Mons", + "Ascraeus Mons", + "Arsia Mons", + "Pavonis Mons", + "Elysium Mons", + "Hecates Tholus", + "Albor Tholus", + "Tharsis Tholus", + "Biblis Tholus", + "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() //Keek&Allakai&Peesh's new TSC From ad4a4f51f7c59abc0f6385a0158c7061b87d70c2 Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Tue, 13 Aug 2019 22:27:56 +0100 Subject: [PATCH 12/18] step 10a: testcompile before you push, kids --- code/modules/busy_space/organizations.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm index f29ea9770f9..67845d1da45 100644 --- a/code/modules/busy_space/organizations.dm +++ b/code/modules/busy_space/organizations.dm @@ -375,7 +375,7 @@ ship_prefixes = list("BCTV" = "a transportation", "BCSV" = "a research exchange") //famous mechanical engineers - ship_names = ( + ship_names = list( "Al-Jazari", "Al-Muradi", "Al-Zarqali", @@ -427,7 +427,7 @@ "Vishweswarayya", "Wankel", "Watt", - "Wiberg" + "Wiberg" ) destination_names = list( "a medical facility in Angessa's Pearl" @@ -505,7 +505,7 @@ "Iodine", "Xenon", "Caesium", - "Barium" + "Barium" ) //some hebrew alphabet destinations for a little extra unusualness destination_names = list( @@ -642,7 +642,7 @@ ship_prefixes = list("TTV" = "a transport", "TTV" = "a luxury transit", "TTV" = "a priority transit") //ship names: big rivers - ship_names = list ( + ship_names = list ( "Nile", "Kagera", "Nyabarongo", From 124c0a4e0c8c06c8459f5812f659a75eccc778f5 Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Thu, 15 Aug 2019 04:01:11 +0100 Subject: [PATCH 13/18] step 11: the final push --- code/modules/busy_space/air_traffic.dm | 41 +- code/modules/busy_space/organizations.dm | 443 ++++++++++++++----- code/modules/lore_codex/lore_data/orgs.dm | 2 +- code/modules/lore_codex/lore_data_vr/orgs.dm | 4 +- 4 files changed, 361 insertions(+), 129 deletions(-) diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm index d267536c912..984d9750093 100644 --- a/code/modules/busy_space/air_traffic.dm +++ b/code/modules/busy_space/air_traffic.dm @@ -3,8 +3,8 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller /datum/lore/atc_controller - var/delay_max = 1 MINUTES //How long between ATC traffic, max. Default is 25 mins. - var/delay_min = 3 MINUTES //How long between ATC traffic, min. Default is 40 mins. + var/delay_max = 25 MINUTES //How long between ATC traffic, max. Default is 25 mins. + var/delay_min = 35 MINUTES //How long between ATC traffic, min. Default is 40 mins. Slight reduction for +/- 5 consistency. var/backoff_delay = 5 MINUTES //How long to back off if we can't talk and want to. Default is 5 mins. var/next_message //When the next message should happen in world.time var/force_chatter_type //Force a specific type of messages @@ -46,13 +46,14 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller msg("Automated Tram departing [using_map.station_name] for [using_map.dock_name] on routine transfer route.","NT Automated Tram") //VOREStation Edit - Tram, tho. sleep(5 SECONDS) msg("Automated Tram, cleared to complete routine transfer from [using_map.station_name] to [using_map.dock_name].") //VOREStation Edit - Tram, tho. + //TODO: update these to use a switchable value pulled from the map defines if we're going to have a rotation of maps /datum/lore/atc_controller/proc/random_convo() var/one = pick(loremaster.organizations) //These will pick an index, not an instance var/two = pick(loremaster.organizations) //I'm now used for fake IFFs var/datum/lore/organization/source = loremaster.organizations[one] //Resolve to the instances - var/datum/lore/organization/fakeiff = loremaster.organizations[two] //For new fun stuff + var/datum/lore/organization/fakeiff = loremaster.organizations[two] //repurposed for new fun stuff //Let's get some mission parameters var/owner = source.short_name //Use the short name @@ -60,7 +61,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/mission = source.ship_prefixes[prefix] //The value of the prefix is the mission type that prefix does var/shipname = pick(source.ship_names) //Pick a random ship name var/destname = pick(source.destination_names) //destination is where? - // var/destdebug = "source" //fallback + var/scan_exempted = source.scan_exempt //am I exempted from routine scans and certain other events? var/fakeowner = fakeiff.short_name var/fakeprefix = pick(fakeiff.ship_prefixes) //Pick a random prefix @@ -70,7 +71,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/combined_name = "[owner] [prefix] [shipname]" var/alt_atc_names = list("[using_map.station_short] TraCon","[using_map.station_short] Control","[using_map.station_short] STC","[using_map.station_short] StarCon") var/wrong_atc_names = list("Sol Command","New Reykjavik StarCon", "[using_map.dock_name]") - var/mission_noun = list("flight","mission","route","operation") + var/mission_noun = list("flight","mission","route","operation","assignment") var/request_verb = list("requesting","calling for","asking for") //First response is 'yes', second is 'no' @@ -94,9 +95,12 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/chatter_type = "normal" if(force_chatter_type) chatter_type = force_chatter_type + else if(scan_exempted) //I have to offload this from the switch and do it here, otherwise BYOND throws a shitfit because raisins + chatter_type = pick(5;"emerg",25;"traveladvisory",30;"dockingrequestgeneric",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest","normal") + //a few groups won't be scanned, won't trigger wrong-frequency messages, can be faked, won't report unusual activity, won't receive course warnings, and won't be denied docks or undocks ("hey SDF?" "yeah?" "we impounded you for security violations" "what the fuck steve") else chatter_type = pick(5;"emerg",5;"wrong_freq",25;"policescan",25;"policeflee",10;"strangeactivity",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdenied",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest",30;"undockingdenied","normal") //Be nice to have wrong_lang... - + var/yes = prob(90) //Chance for them to say yes vs no var/request = pick(requests) @@ -110,6 +114,8 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller // sometimes you just gotta print something somewhere accessible // msg("[owner] [prefix] [shipname], [destdebug], [mission] [destname]","Debug Print") + // what you're about to witness is what feels like an extremely kludgy rework of the system, but it's more 'flexible' and allows events that aren't just ship-stc-ship + // something more elegant could probably be done, but it won't be done by somebody as half-competent as me switch(chatter_type) if("wrong_freq") callname = pick(wrong_atc_names) @@ -139,10 +145,10 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(15 SECONDS) msg("[combined_name], this is [using_map.station_short] Space Control. Scan complete. [completed]") if("policeflee") - 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!","I'm afraid I can't do that, Control.") + 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.") msg("[combined_fake_name], this is [using_map.station_short] Space Control, your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.") sleep(5 SECONDS) - msg("[uhoh]","[fakeprefix] [fakeshipname]") + msg("[uhoh]","[prefix] [shipname]") sleep(5 SECONDS) msg("This is [using_map.station_short] Space Control to all local SDF assets, the [combined_fake_name] is broadcasting false IFF codes. Registry updated to [combined_name]: vector to interdict and detain. Control out.") if("strangeactivity") @@ -152,7 +158,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("[confirm], [combined_name]. Dispatching SysDef assets to investigate.") 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 SysDef vessels","Vox Marauder activity is higher than usual, report any unusual activity to the nearest System Defense Boat","Quarantine fleet is passing through the system along route [rand(1,100)], please observe minimum safe distance","A prison fleet 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, 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 SysDef forces are currently engaged in skirmishes throughout the system, please steer clear of any active combat zones","A fuel tanker has collided with a cargo liner near route [rand(1,100)], watch for loose containers and dispersed fuel","","Bounty hunters are currently searching for a wanted fugitive","Mercenary contractors are currently conducting aggressive [pick("piracy","marauder")] suppression operations",10;"It's space carp breeding season. Stars 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 SysDef vessels","Vox Marauder activity is higher than usual, report any unusual activity to the nearest System Defense Boat","Quarantine fleet is passing through the system along route [rand(1,100)], please observe minimum safe distance","A prison fleet 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, 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 SysDef forces are currently engaged in skirmishes throughout the system, please steer clear of any active combat zones","A fuel tanker has collided with a cargo liner near route [rand(1,100)], watch for loose containers and dispersed fuel","A [pick("fuel tanker","cargo liner","passenger liner")] 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","Bounty hunters are currently searching for a wanted fugitive","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") msg("This is [using_map.station_short] Space Control to all vessels in this system. Priority travel advisory follows.") sleep(5 SECONDS) msg("[flightwarning]. Control out.") @@ -160,7 +166,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/navhazard = pick ("a pocket of intense radiation","a pocket of unstable gas","a debris field","a secure installation","an active combat zone","a quarantined ship","a quarantined installation","a quarantined sector") var/confirm = pick("Understood","Roger that","Affirmative","Thanks for the heads up") var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you") - msg("[combined_name], this is [using_map.station_short] Space Control, your ship is approaching [navhazard], please adjust heading to [rand(1,360)].") + msg("[combined_name], this is [using_map.station_short] Space Control, your [pick("ship","vessel","starship")] is approaching [navhazard], please adjust heading to [rand(1,360)].") sleep(5 SECONDS) msg("[confirm] [using_map.station_short] Space Control, adjusting course.","[prefix] [shipname]") sleep(5 SECONDS) @@ -168,21 +174,21 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller if("dockingrequestgeneric") var/appreciation = pick("Much appreciated","Many thanks","Understood","Cheers") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") - msg("[callname], this is [combined_name], stopping by on our way to [destname], requesting permission to dock.","[prefix] [shipname]") + msg("[callname], this is [combined_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) msg("[combined_name], this is [using_map.station_short] Space Control. Permission granted, proceed to landing pad [rand(1,42)]. Follow the green lights on your way in.") sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Space Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestdenied") var/reason = pick("we don't have any free landing pads right now","we don't have any free landing pads large enough for your vessel","we don't have the necessary facilities for your vessel type or class","we can't verify your credentials","you're too far away, please close to ten thousand meters and resubmit your request") - msg("[callname], this is [combined_name], requesting permission to dock.","[prefix] [shipname]") + msg("[callname], this is [combined_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to dock.","[prefix] [shipname]") sleep(5 SECONDS) msg("[combined_name], this is [using_map.station_short] Space Control. Request denied, [reason].") sleep(5 SECONDS) msg("Understood, [using_map.station_short] Space Control.","[prefix] [shipname]") if("dockingrequestsupply") - var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda","a little","rather","terribly","dreadfully") - var/low_thing = pick("ammunition","oxygen","water","food","repair supplies","medical supplies","crew","reaction mass","hydrogen fuel","phoron fuel","fuel",5;"tea",5;"coffee",5;"pizza",5;"beer") //low chance of a less serious shortage + var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda","a little","a bit","rather","terribly","dreadfully") + var/low_thing = pick("ammunition","oxygen","water","food","repair supplies","medical supplies","reaction mass","hydrogen fuel","phoron fuel","fuel",5;"tea",5;"coffee",5;"pizza",5;"beer",5;"snacks") //very 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") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. We're [intensifier] low on [low_thing] and need to resupply. Requesting permission to dock.","[prefix] [shipname]") @@ -191,7 +197,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("[appreciation], [using_map.station_short] Space Control. [dockingplan]","[prefix] [shipname]") if("dockingrequestrepair") - var/damagestate = pick("We're showing 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","We're hearing some weird noises from the engines","Our artificial gravity generator has failed","Our life support is failing","Our water recycling system has shorted 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 fuel leak","We have depressurized compartments","We have a hull breach","Our shield generator is on the fritz","Our RCS is acting up") + var/damagestate = pick("We're showing 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 engines","Our artificial gravity generator has failed","Our life support is failing","Our water recycling system has shorted 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")] leak","We have depressurized compartments","We have a hull breach","Our shield generator is on the fritz","Our RCS is acting up") var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one") var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.") msg("[callname], this is [combined_name]. [damagestate]. Requesting permission to dock for repairs.","[prefix] [shipname]") @@ -227,16 +233,17 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("[thanks], [using_map.station_short] Space Control. This is the [prefix] [shipname] setting course for [destname], over and out.","[prefix] [shipname]") if("undockingdenied") - var/denialreason = pick("Complete preflight checklist","Docking clamp malfunction, please hold","Fuel lines have not been secured","Ground crew are still on the pad","Loose containers are on the pad","Security is requesting a full cargo inspection","Your ship has been impounded for multiple security violations","You need to pass a quick engineering inspection","Your ship is currently under quarantine","Exhaust deflectors are not yet in position, please hold") + var/denialreason = pick("Docking clamp malfunction, please hold","Fuel lines have not been secured","Ground crew are still on the pad","Loose containers are on the pad","Security is requesting a full cargo inspection","Your ship has been impounded for multiple security violations","You need to pass a quick engineering inspection","Your ship is currently under quarantine lockdown","Exhaust deflectors are not yet in position, please hold") msg("[callname], this is [combined_name], requesting permission to depart from pad [rand(1,42)].","[prefix] [shipname]") sleep(5 SECONDS) msg("Negative [combined_name], request denied. [denialreason].") - else + else //time for generic message msg("[callname], this is [combined_name] on [mission] [pick(mission_noun)] to [destname], [pick(request_verb)] [request].","[prefix] [shipname]") sleep(5 SECONDS) msg("[combined_name], this is [using_map.station_short] Space Control, [response].") sleep(5 SECONDS) msg("[using_map.station_short] Space Control, [yes ? "thank you" : "understood"], good day.","[prefix] [shipname]") + return //oops, forgot to restore this /* //OLD BLOCK, for reference //Ship sends request to ATC diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm index 67845d1da45..6ef203f7855 100644 --- a/code/modules/busy_space/organizations.dm +++ b/code/modules/busy_space/organizations.dm @@ -11,7 +11,7 @@ var/list/ship_prefixes = list() //Some might have more than one! Like NanoTrasen. Value is the mission they perform, e.g. ("ABC" = "mission desc") var/list/ship_names = list( //Names of spaceships. This is a mostly generic list that all the other organizations inherit from if they don't have anything better. - "Kestrel", + "Scout", "Beacon", "Signal", "Freedom", @@ -30,24 +30,27 @@ "Ascendant", "Tenacious", "Pioneer", - "Hawk", + "Surveyor", "Haste", "Radiant", "Luminous" ) var/list/destination_names = list() //Names of static holdings that the organization's ships visit regularly. + var/scan_exempt = FALSE //Are we exempt from routine inspections? to avoid incidents where SysDef appears to go rogue var/autogenerate_destination_names = TRUE //Pad the destination lists with some extra random ones? /datum/lore/organization/New() ..() 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 in 'starved' lists - var/list/star_names = list( - "Sol", "Alpha Centauri", "Sirius", "Vega", "Tau Ceti", "Zhu Que", "Oasis", "Vir", "Gavel", "Ganesha", "Saint Columbia", "Altair", "Sidhe", "New Ohio", "Parvati", "Mahi-Mahi", "Nyx", "New Seoul", "Kess-Gendar", "Raphael", "Phact", "Altair", "El", "Eutopia", "Qerr'valis", "Qerrna-Lakirr", "Rarkajar", "Vazzend", "Thoth", "Jahan's Post", "Kauq'xum", "Silk", "New Singapore", "Stove", "Viola", "Love", "Isavau's Gamble", "Shelf") - var/list/destination_types = list("a dockyard", "a station", "a vessel", "a waystation", "a telecommunications satellite", "a spaceport", "a colony", "an outpost", "a settlement", "a research facility", "a corporate installation", "a freeport", "an independent holding", "an asteroid base", "an orbital refinery", "a trade outpost") + var/list/star_names = list( + "in Sol", "in Alpha Centauri", "in Sirius", "in Vega", "in Tau Ceti", "in Altair", "in Zhu Que", "in Oasis", "in Vir", "in Gavel", "in Ganesha", "in Saint Columbia", "in Altair", "in Sidhe", "in New Ohio", "in Parvati", "in Mahi-Mahi", "in Nyx", "in New Seoul", "in Kess-Gendar", "in Raphael", "in Phact", "in Altair", "in El", "in Eutopia", "in Qerr'valis", "in Qerrna-Lakirr", "in Rarkajar", "in Vazzend", "in Thoth", "in Jahan's Post", "in Kauq'xum", "in Silk", "in New Singapore", "in Stove", "in Viola", "in Love", "in Isavau's Gamble", "in Shelf", "in deep space", "on the frontier") + var/list/owners = list("a government", "a civilian", "a corporate", "a private", "an independent", "a mercenary", "a military") + var/list/destination_types = list("[pick(owners)] shipyard", "[pick(owners)] dockyard", "[pick(owners)] station", "[pick(owners)] vessel", "a waystation", "[pick(owners)] telecommunications satellite", "a spaceport", "a colony", "[pick(owners)] outpost", "a settlement", "[pick(owners)] research facility", "[pick(owners)] installation", "a freeport", "[pick(owners)] holding", "[pick(owners)] asteroid base", "an orbital refinery", "a classified location", "a trade outpost", "[pick(owners)] supply depot", "[pick(owners)] fuel depot") while(i) - destination_names.Add("[pick(destination_types)] in [pick(star_names)]") + destination_names.Add("[pick(destination_types)] [pick(star_names)]") i-- + //refactored slightly to improve flexibility; we can now have different owners for a destination (but only for some destinations), and 'stars' can include other star-like destinations ////////////////////////////////////////////////////////////////////////////////// @@ -92,7 +95,7 @@ "Bell", "Mendel", "Kepler", - "Edision", + "Edison", "Cavendish", "Nye", "Hawking", @@ -230,7 +233,7 @@ ) /datum/lore/organization/tsc/zeng_hu - name = "Zeng-Hu pharmaceuticals" + name = "Zeng-Hu Pharmaceuticals" short_name = "Zeng-Hu" acronym = "ZH" desc = "Zeng-Hu is an old TSC, based in the Sol system. Until the discovery of Phoron, Zeng-Hu maintained a stranglehold \ @@ -511,6 +514,7 @@ destination_names = list( "our headquarters in Shelf", "a trade outpost in Shelf", + "one of our factory complexes on Root", "research outpost Aleph", "logistics depot Dalet", "research installation Zayin", @@ -580,67 +584,88 @@ name = "Antares Robotics Group" short_name = "Antares" acronym = "ARG" - desc = "A relative newcomer to the prosthetics and cybernetics market, the Antares Robotics Group builds sturdy, reliable hardware supremely suited to frontier life. They're in direct (and aggressive) competition with Hephaestus Industries, though it remains to be seen what HI will make of these newcomers trying to muscle in on their share of the frontier markets." + desc = "A heavy competitor in the mining industries to Hephaestus Industries, Antares Robotics sets its vision grand.

The ARU (Antares Robotics Unit) was the first step to creating a heavy frame synthetic that can take even the harshest of punishment from any foreign origin!

After rigorous studies (all of which successful of course!) Antares Robotics paired with several outsourced help took its first step into Prosthetics for those that need a reliable limb that can take and give a punch!" history = "" work = "cybernetics manufacturer" headquarters = "" motto = "" ship_prefixes = list("ATV" = "a transport", "ARV" = "a research", "ADV" = "a routine patrol", "AEV" = "a raw materials acquisition") - //ship names: rocks! no rolling - ship_names = list( - "Adakite", - "Andesite", - "Basalt", - "Basanite", - "Diorite", - "Dunite", - "Gabbro", - "Granite", - "Harzburgite", - "Ignimbrite", - "Kimberlite", - "Komatiite", - "Norite", - "Obsidian", - "Pegmatite", - "Picrite", - "Pumice", - "Rhyolite", - "Scoria", - "Syenite", - "Tachylyte", - "Wehrlite", - "Arkose", - "Chert", - "Dolomite", - "Flint", - "Laterite", - "Marl", - "Oolite", - "Sandstone", - "Shale", - "Anthracite", - "Gneiss", - "Granulite", - "Mylonite", - "Schist", - "Skarn", - "Slate" - ) + //ship names: blank, because we get some autogenned for us + ship_names = list() destination_names = list() +/datum/lore/organization/tsc/antares/New() + ..() + var/i = 20 //give us twenty random names, antares has snowflake rng-ids + var/list/numbers = list( + "One", + "Two", + "Three", + "Four", + "Five", + "Six", + "Seven", + "Eight", + "Nine", + "Zero" + ) + while(i) + ship_names.Add("[pick(numbers)] [pick(numbers)] [pick(numbers)] [pick(numbers)]") + i-- + +/datum/lore/organization/tsc/ftu + name = "Free Trade Union" + short_name = "Trade Union" + 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.

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." + work = "" + headquarters = "" + motto = "" + + ship_prefixes = list("FTRP" = "a route 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 + ship_names = list( + "Isaac Adler", + "Colaeus", + "Marcus Licinius Crassus", + "Zhang Qian", + "Irene of Athens", + "Marco Polo", + "Piero de' Bardi", + "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 name = "Major Bill's Transportation" short_name = "Major Bill's" acronym = "MBT" - desc = "The most popular courier service and starliner, Major Bill's is an unassuming corporation whose greatest asset is their low cost and brand recognition. Major Bill’s is known, perhaps unfavorably, for its mascot, Major Bill, a cartoonish military figure that spouts quotable slogans. Their motto is \"With Major Bill's, you won't pay major bills!\", an earworm much of the galaxy longs to forget. Their ships are named after some of Earth's greatest rivers." + desc = "The most popular courier service and starliner, Major Bill's is an unassuming corporation whose greatest asset is their low cost and brand recognition. Major Bill's is known, perhaps unfavorably, for its mascot, Major Bill, a cartoonish military figure that spouts quotable slogans. Their motto is \"With Major Bill's, you won't pay major bills!\", an earworm much of the galaxy longs to forget. Their ships are named after some of Earth's greatest rivers." history = "" work = "courier and passenger transit" headquarters = "Mars, Sol" motto = "" - ship_prefixes = list("TTV" = "a transport", "TTV" = "a luxury transit", "TTV" = "a priority transit") + ship_prefixes = list("TTV" = "a transport", "TTV" = "a luxury transit", "TTV" = "a priority transit", "TTV" = "a secure data courier") //ship names: big rivers ship_names = list ( "Nile", @@ -691,7 +716,175 @@ "Araguaia", "Volga" ) - destination_names = list() + destination_names = list( + "Major Bill's Transportation HQ on Mars", + "a Major Bill's warehouse", + "a Major Bill's distribution center", + "a Major Bill's supply deplot" + ) + +/datum/lore/organization/tsc/grayson + name = "Grayson Manufactories Ltd." + short_name = "Grayson" + acronym = "GM" + desc = "Grayson Manufactories Ltd., true to its name, mines, refines, and produces iron, steel, aluminum, and other metals for use in casing and other production before selling them. They are also known for reviving their old traditions of supplying general materials ready for assembly for construction projects. These parts are interchangeable and considered somewhat cheap, but have proven to be generally and consecutively reliable.

As of current, Grayson Manufactories has a fairly neutral stance on the other major corporations, though has a history of maintaining a monopoly on specific trades through heavy competition and even rumors of industrial sabotage and use of strikebreakers." + history = "" + work = "" + headquarters = "Mars" + motto = "" + + ship_prefixes = list("GMT" = "a transport", "GMR" = "a resourcing", "GMS" = "a surveying", "GMH" = "a bulk transit") + //rocks + ship_names = list( + "Adakite", + "Andesite", + "Basalt", + "Basanite", + "Diorite", + "Dunite", + "Gabbro", + "Granite", + "Harzburgite", + "Ignimbrite", + "Kimberlite", + "Komatiite", + "Norite", + "Obsidian", + "Pegmatite", + "Picrite", + "Pumice", + "Rhyolite", + "Scoria", + "Syenite", + "Tachylyte", + "Wehrlite", + "Arkose", + "Chert", + "Dolomite", + "Flint", + "Laterite", + "Marl", + "Oolite", + "Sandstone", + "Shale", + "Anthracite", + "Gneiss", + "Granulite", + "Mylonite", + "Schist", + "Skarn", + "Slate" + ) + destination_names = list( + "our headquarters on Mars", + "one of our manufacturing complexes", + "one of our mining installations" + ) + +/datum/lore/organization/tsc/aether + name = "Aether Atmospherics & Recycling" + short_name = "Aether" + acronym = "AAR" + desc = "Aether Atmospherics and Recycling is the prime maintainer and provider of atmospherics systems across both the many ships that navigate the vast expanses of space, and the life support on current and future Human colonies. The byproducts from the filtration of atmospheres across the galaxy are then resold for a variety of uses to those willing to buy. With the nature of their services, most work they do is contracted for construction of these systems, or staffing to maintain them for colonies across human space." + history = "" + work = "" + headquarters = "" + motto = "" + + ship_prefixes = list("AARE" = "a resource extraction", "AARG" = "a gas transport", "AART" = "a transport") + //weather systems/patterns + ship_names = list ( + "Cloud", + "Nimbus", + "Fog", + "Vapor", + "Haze", + "Smoke", + "Thunderhead", + "Veil", + "Steam", + "Mist", + "Noctilucent", + "Nacreous", + "Cirrus", + "Cirrostratus", + "Cirrocumulus", + "Aviaticus", + "Altostratus", + "Altocumulus", + "Stratus", + "Stratocumulus", + "Cumulus", + "Fractus", + "Asperitas", + "Nimbostratus", + "Cumulonimbus", + "Pileus", + "Arcus" + ) + destination_names = list( + "Aether HQ", + "a gas mining orbital", + "a liquid extraction plant" + ) + +/datum/lore/organization/tsc/focalpoint + name = "Focal Point Energistics" + short_name = "Focal" + acronym = "FPE" + desc = "Focal Point Energistics is an electrical engineering solutions firm originally formed as a conglomerate of Earth power companies and affiliates. Focal Point manufactures and distributes vital components in modern power grids, such as TEGs, PSUs and their specialty product, the SMES. The company is often consulted and contracted by larger organisations due to their expertise in their field." + history = "" + work = "" + headquarters = "" + motto = "" + + ship_prefixes = list("FPH" = "a transport", "FPC" = "an energy relay", "FPT" = "a fuel transport") + //famous electrical engineers + ship_names = list ( + "Erlang", + "Blumlein", + "Taylor", + "Bell", + "Reeves", + "Bennett", + "Volta", + "Blondel", + "Beckman", + "Hirst", + "Lamme", + "Bright", + "Armstrong", + "Ayrton", + "Bardeen", + "Fuller", + "Boucherot", + "Brown", + "Brush", + "Burgess", + "Camras", + "Crompton", + "Deprez", + "Elwell", + "Entz", + "Faraday", + "Halas", + "Hounsfield", + "Immink", + "Laithwaite", + "McKenzie", + "Moog", + "Moore", + "Pierce", + "Ronalds", + "Shallenberger", + "Siemens", + "Spencer", + "Tesla", + "Yablochkov", + ) + destination_names = list( + "Focal Point HQ" + ) /datum/lore/organization/tsc/independent name = "Independent Pilots Association" @@ -703,8 +896,8 @@ headquarters = "N/A" motto = "N/A" - ship_prefixes = list("IEV" = "a prospecting", "IEC" = "a prospecting", "IFV" = "a bulk freight", "ITV" = "a passenger transport", "ITC" = "a just-in-time delivery", "IPV" = "a patrol", "IHV" = "a bounty hunting") - destination_names = list() + ship_prefixes = list("IEV" = "a prospecting", "IEC" = "a prospecting", "IFV" = "a bulk freight", "ITV" = "a passenger transport", "ITC" = "a just-in-time delivery", "IPV" = "a patrol", "IHV" = "a bounty hunting", "ICC" = "an escort") + destination_names = list() //we have no hqs or facilities of our own // Other @@ -718,6 +911,7 @@ work = "local security" headquarters = "" motto = "" + scan_exempt = TRUE //we're the laaaaaw, we don't impersonate people and stuff autogenerate_destination_names = FALSE ship_prefixes = list ("SDB" = "a patrol", "SDF" = "a patrol", "SDV" = "a patrol", "SDB" = "an escort", "SDF" = "an escort", "SDV" = "an escort", "SAR" = "a search and rescue", "SDT" = "a logistics", "SDT" = "a resupply") //b = boat, f = fleet, v = vessel, t = tender @@ -792,49 +986,8 @@ "Waypoint Omega" ) -/* //placeholder for a religious-themed faction -/datum/lore/organization/other/starchurch - name = "Church of the Stars" - short_name = "Church of the Stars" //shortnames are for heathens and heretics! - acronym = "CotS" - desc = "" - history = "" - work = "spreading the good word" - headquarters = "" - motto = "" - autogenerate_destination_names = TRUE - - ship_prefixes = list ("CSO" = "an outreach", "CSM" = "a mercy", "CSA" = "an aid", "CSP" = "a pilgramage") - //ship names: prophets? - destination_names = list( - ) -*/ - // Governments -/* -/datum/lore/organization/gov/sifgov - name = "Sif Governmental Authority" - short_name = "SifGov" - desc = "SifGov is the sole governing administration for the Vir system, based in New Reykjavik, Sif. It is a representative \ - democratic government, and a fully recognized member of the Solar Central Government. Anyone operating inside of Vir must \ - comply with SifGov's legislation and regulations." // Vorestation Edit. Confederate -> Central - history = "" // Todo like the rest of them - work = "governing body of Sif" - headquarters = "New Reykjavik, Sif, Vir" - motto = "" - autogenerate_destination_names = FALSE - - ship_prefixes = list("SGA" = "a hauling", "SGA" = "an energy relay") - destination_names = list( - "New Reykjavik on Sif", - "Radiance Energy Chain", - "a dockyard orbiting Sif", - "a telecommunications satellite", - "Vir Interstellar Spaceport" - ) -*/ - /datum/lore/organization/gov/solgov name = "Solar Confederate Government" short_name = "SolGov" @@ -847,6 +1000,7 @@ work = "governing polity of humanity's Confederation" headquarters = "Luna, Sol" motto = "Nil Mortalibus Ardui Est" // Latin, because latin. Says 'Nothing is too steep for mortals'. + scan_exempt = TRUE //it would look pretty weird if the SCG were caught impersonating other people autogenerate_destination_names = TRUE ship_prefixes = list("SCG-T" = "a transportation", "SCG-D" = "a diplomatic", "SCG-F" = "a freight") @@ -933,31 +1087,90 @@ // Military // Used for Para-Military groups right now! Pair of placeholder-ish PMCs. -/datum/lore/organization/mil/wolfpack - name = "Wolfpack Security" - short_name = "WolfSec" - acronym = "WPS" - desc = "Wolfpack Security is a merging of several much smaller freelance companies, and operates throughout civilized space. Unlike some companies, it operates no planetside facilities whatsoever, opting instead for larger flotillas that are serviced by innumerable smallcraft. As with any PMC there's no small amount of controversy surrounding them, but they try to keep their operations cleaner than their competitors. They're fairly well known for running 'mercy' operations, which are low-cost no-strings-attached contracts for those in dire need." +/datum/lore/organization/mil/pcrc + name = "Proxima Centauri Risk Control" + short_name = "Proxima Centauri" + acronym = "PCRC" + desc = "Not a whole lot is known about the private security company known as PCRC, but it is known that they're irregularly contracted by the larger TSCs for certain delicate matters. Much of the company's inner workings are shrouded in mystery, and most citizens have never even heard of them." + history = "" + work = "risk control and private security" + headquarters = "Proxima Centauri" + motto = "" + scan_exempt = TRUE //we're not the best guys, but we're not actually shady + autogenerate_destination_names = TRUE + + ship_prefixes = list("PCRC" = "a risk control", "PCRC" = "a private security") + //law/protection terms + ship_names = list( + "Detective", + "Constable", + "Judge", + "Adjudicator", + "Magistrate", + "Marshal", + "Warden", + "Peacemaker", + "Arbiter", + "Justice", + "Order", + "Jury", + "Inspector", + "Bluecoat", + "Gendarme", + "Gumshoe", + "Patrolman", + "Sentinel", + "Shield", + "Aegis", + "Auditor", + "Monitor", + "Investigator", + "Agent", + "Prosecutor", + "Sergeant", + ) + + destination_names = list( + "PCRC HQ, in Proxima Centauri", + "a PCRC training installation", + "a PCRC supply depot" + ) + +//I'm covered in beeeeeeees! +/datum/lore/organization/mil/hive + name = "HIVE Security" + short_name = "HIVE" + acronym = "HVS" + desc = "HIVE Security is a merging of several much smaller freelance companies, and operates throughout civilized space. Unlike some companies, it operates no planetside facilities whatsoever, opting instead for larger flotillas that are serviced by innumerable smallcraft. As with any PMC there's no small amount of controversy surrounding them, but they try to keep their operations cleaner than their competitors. They're fairly well known for running 'mercy' operations, which are low-cost no-strings-attached contracts for those in dire need." history = "" work = "mercenary contractors" headquarters = "" - motto = "" + motto = "Strength in Numbers" + scan_exempt = TRUE //we're technically kinda-good guys, so we don't do shady stuff autogenerate_destination_names = TRUE - ship_prefixes = list("WPF" = "a secure freight", "WPS" = "a logistics", "WPV" = "a patrol", "WPH" = "a bounty hunting", "WPX" = "an experimental", "WPC" = "a command", "WPI" = "a mercy") + ship_prefixes = list("HPF" = "a secure freight", "HPS" = "a logistics", "HPV" = "a patrol", "HPH" = "a bounty hunting", "HPX" = "an experimental", "HPC" = "a command", "HPI" = "a mercy") + //animals, preferably predators, all factual/extant critters ship_names = list( "Wolf", "Bear", "Eagle", + "Condor", "Falcon", + "Hawk", + "Kestrel", "Shark", "Fox", + "Weasel", "Mongoose", "Bloodhound", "Rhino", "Tiger", "Leopard", + "Panther", + "Cheetah", "Lion", + "Vulture", "Piranha", "Crocodile", "Alligator", @@ -973,16 +1186,28 @@ "Sealion", "Viper", "Cobra", + "Sidewinder", + "Asp", "Python", "Anaconda", + "Krait", + "Diamondback", + "Mamba", + "Fer de Lance", + "Keelback", + "Adder", + "Constrictor", + "Boa", + "Moray", + "Taipan", "Rattlesnake" - ) + ) destination_names = list( - "Wolfpack Command", - "a WPS patrol fleet", - "a WPS flotilla", - "a WPS training fleet", - "a WPS logistics fleet", + "HIVE Command", + "a HIVE patrol fleet", + "a HIVE flotilla", + "a HIVE training fleet", + "a HIVE logistics fleet", "a contract location" ) //some basics, padded with autogen diff --git a/code/modules/lore_codex/lore_data/orgs.dm b/code/modules/lore_codex/lore_data/orgs.dm index 839db448a3d..04c73bd263c 100644 --- a/code/modules/lore_codex/lore_data/orgs.dm +++ b/code/modules/lore_codex/lore_data/orgs.dm @@ -30,6 +30,6 @@ /* /datum/lore/codex/category/auto_org/mil - name = "Militaries" + name = "Para-Militaries & Private Security" desired_type = /datum/lore/organization/mil */ \ No newline at end of file diff --git a/code/modules/lore_codex/lore_data_vr/orgs.dm b/code/modules/lore_codex/lore_data_vr/orgs.dm index 5f4c6cc6504..54c1a63d335 100644 --- a/code/modules/lore_codex/lore_data_vr/orgs.dm +++ b/code/modules/lore_codex/lore_data_vr/orgs.dm @@ -34,6 +34,6 @@ /datum/lore/codex/category/auto_org/mil - name = "Militaries" - auto_keywords = list("Mil","Military", "Militaries") + name = "Para-Militaries & Private Security" + auto_keywords = list("Mil","Military","Militaries","Security") desired_type = /datum/lore/organization/mil From 30fccf1940557d6ac0d4626b514ceecc1fecf038 Mon Sep 17 00:00:00 2001 From: Killian <49700375+VarkaSelyn@users.noreply.github.com> Date: Fri, 16 Aug 2019 19:45:01 +0100 Subject: [PATCH 14/18] step 12: restores USDF, adds a passenger/liner company --- code/modules/busy_space/air_traffic.dm | 10 +- code/modules/busy_space/organizations.dm | 236 +++++++++++++++++-- code/modules/lore_codex/lore_data_vr/orgs.dm | 2 +- 3 files changed, 216 insertions(+), 32 deletions(-) diff --git a/code/modules/busy_space/air_traffic.dm b/code/modules/busy_space/air_traffic.dm index 984d9750093..f64e34600c5 100644 --- a/code/modules/busy_space/air_traffic.dm +++ b/code/modules/busy_space/air_traffic.dm @@ -56,7 +56,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/datum/lore/organization/fakeiff = loremaster.organizations[two] //repurposed for new fun stuff //Let's get some mission parameters - var/owner = source.short_name //Use the short name + var/owner = source.short_name //Use the short name var/prefix = pick(source.ship_prefixes) //Pick a random prefix var/mission = source.ship_prefixes[prefix] //The value of the prefix is the mission type that prefix does var/shipname = pick(source.ship_names) //Pick a random ship name @@ -66,12 +66,12 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller var/fakeowner = fakeiff.short_name var/fakeprefix = pick(fakeiff.ship_prefixes) //Pick a random prefix var/fakeshipname = pick(fakeiff.ship_names) //Pick a random ship name - var/combined_fake_name = "[fakeowner] [fakeprefix] [fakeshipname]" - var/combined_name = "[owner] [prefix] [shipname]" + var/combined_name = "[owner][prefix] [shipname]" + var/combined_fake_name = "[fakeowner][fakeprefix] [fakeshipname]" var/alt_atc_names = list("[using_map.station_short] TraCon","[using_map.station_short] Control","[using_map.station_short] STC","[using_map.station_short] StarCon") var/wrong_atc_names = list("Sol Command","New Reykjavik StarCon", "[using_map.dock_name]") - var/mission_noun = list("flight","mission","route","operation","assignment") + var/mission_noun = pick(source.flight_types) //pull from a list of owner-specific flight ops, to allow an extra dash of flavor var/request_verb = list("requesting","calling for","asking for") //First response is 'yes', second is 'no' @@ -231,7 +231,7 @@ var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller sleep(5 SECONDS) msg("[combined_name], this is [using_map.station_short] Space Control. Permission granted. Docking clamps released. [safetravels].") sleep(5 SECONDS) - msg("[thanks], [using_map.station_short] Space Control. This is the [prefix] [shipname] setting course for [destname], over and out.","[prefix] [shipname]") + msg("[thanks], [using_map.station_short] Space Control. This is [combined_name] setting course for [destname], over and out.","[prefix] [shipname]") if("undockingdenied") var/denialreason = pick("Docking clamp malfunction, please hold","Fuel lines have not been secured","Ground crew are still on the pad","Loose containers are on the pad","Security is requesting a full cargo inspection","Your ship has been impounded for multiple security violations","You need to pass a quick engineering inspection","Your ship is currently under quarantine lockdown","Exhaust deflectors are not yet in position, please hold") msg("[callname], this is [combined_name], requesting permission to depart from pad [rand(1,42)].","[prefix] [shipname]") diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm index 6ef203f7855..7fbdc355616 100644 --- a/code/modules/busy_space/organizations.dm +++ b/code/modules/busy_space/organizations.dm @@ -10,6 +10,13 @@ var/motto = "" // A motto/jingle/whatever, if they have one. Currently unused. var/list/ship_prefixes = list() //Some might have more than one! Like NanoTrasen. Value is the mission they perform, e.g. ("ABC" = "mission desc") + var/list/flight_types = list( //operations and flights - we can override this if we want to remove the military-sounding ones or add our own + "flight", + "mission", + "route", + "operation", + "assignment" + ) 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. "Scout", "Beacon", @@ -57,7 +64,7 @@ // TSCs /datum/lore/organization/tsc/nanotrasen name = "NanoTrasen Incorporated" - short_name = "NanoTrasen" + short_name = "NanoTrasen " acronym = "NT" desc = "NanoTrasen is one of the foremost research and development companies in SolGov space. \ Originally focused on consumer products, their swift move into the field of Phoron has lead to \ @@ -132,7 +139,7 @@ /datum/lore/organization/tsc/hephaestus name = "Hephaestus Industries" - short_name = "Hephaestus" + short_name = "Hephaestus " acronym = "HI" desc = "Hephaestus Industries is the largest supplier of arms, ammunition, and small millitary vehicles in Sol space. \ Hephaestus products have a reputation for reliability, and the corporation itself has a noted tendency to stay removed \ @@ -188,7 +195,7 @@ /datum/lore/organization/tsc/vey_med name = "Vey-Medical" //The Wiki displays them as Vey-Medical. - short_name = "Vey-Med" + short_name = "Vey-Med " acronym = "VM" desc = "Vey-Med is one of the newer TSCs on the block and is notable for being largely owned and opperated by Skrell. \ Despite the suspicion and prejudice leveled at them for their alien origin, Vey-Med has obtained market dominance in \ @@ -234,7 +241,7 @@ /datum/lore/organization/tsc/zeng_hu name = "Zeng-Hu Pharmaceuticals" - short_name = "Zeng-Hu" + short_name = "Zeng-Hu " acronym = "ZH" desc = "Zeng-Hu is an old TSC, based in the Sol system. Until the discovery of Phoron, Zeng-Hu maintained a stranglehold \ on the market for medications, and many household names are patentted by Zeng-Hu-- Bicaridyne, Dylovene, Tricordrizine, \ @@ -312,7 +319,7 @@ /datum/lore/organization/tsc/ward_takahashi name = "Ward-Takahashi General Manufacturing Conglomerate" - short_name = "Ward-Takahashi" + short_name = "Ward-Takahashi " acronym = "WT" desc = "Ward-Takahashi focuses on the sale of small consumer electronics, with its computers, communicators, \ and even mid-class automobiles a fixture of many households. Less famously, Ward-Takahashi also supplies most \ @@ -363,7 +370,7 @@ /datum/lore/organization/tsc/bishop name = "Bishop Cybernetics" - short_name = "Bishop" + short_name = "Bishop " acronym = "BC" desc = "Bishop's focus is on high-class, stylish cybernetics. A favorite among transhumanists (and a bête noire for \ bioconservatives), Bishop manufactures not only prostheses but also brain augmentation, synthetic organ replacements, \ @@ -438,7 +445,7 @@ /datum/lore/organization/tsc/morpheus name = "Morpheus Cyberkinetics" - short_name = "Morpheus" + short_name = "Morpheus " acronym = "MC" desc = "The only large corporation run by positronic intelligences, Morpheus caters almost exclusively to their sensibilities \ and needs. A product of the synthetic colony of Shelf, Morpheus eschews traditional advertising to keep their prices low and \ @@ -524,7 +531,7 @@ /datum/lore/organization/tsc/xion name = "Xion Manufacturing Group" - short_name = "Xion" + short_name = "Xion " acronym = "XMG" desc = "Xion, quietly, controls most of the market for industrial equipment. Their portfolio includes mining exosuits, \ factory equipment, rugged positronic chassis, and other pieces of equipment vital to the function of the economy. Xion \ @@ -582,7 +589,7 @@ //Keek&Allakai&Peesh's new TSC /datum/lore/organization/tsc/antares name = "Antares Robotics Group" - short_name = "Antares" + short_name = "Antares " acronym = "ARG" desc = "A heavy competitor in the mining industries to Hephaestus Industries, Antares Robotics sets its vision grand.

The ARU (Antares Robotics Unit) was the first step to creating a heavy frame synthetic that can take even the harshest of punishment from any foreign origin!

After rigorous studies (all of which successful of course!) Antares Robotics paired with several outsourced help took its first step into Prosthetics for those that need a reliable limb that can take and give a punch!" history = "" @@ -616,7 +623,7 @@ /datum/lore/organization/tsc/ftu name = "Free Trade Union" - short_name = "Trade Union" + short_name = "Trade Union " 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.

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." @@ -657,13 +664,13 @@ /datum/lore/organization/tsc/mbt name = "Major Bill's Transportation" - short_name = "Major Bill's" + short_name = "Major Bill's " acronym = "MBT" desc = "The most popular courier service and starliner, Major Bill's is an unassuming corporation whose greatest asset is their low cost and brand recognition. Major Bill's is known, perhaps unfavorably, for its mascot, Major Bill, a cartoonish military figure that spouts quotable slogans. Their motto is \"With Major Bill's, you won't pay major bills!\", an earworm much of the galaxy longs to forget. Their ships are named after some of Earth's greatest rivers." history = "" work = "courier and passenger transit" headquarters = "Mars, Sol" - motto = "" + motto = "With Major Bill's, you won't pay major bills!" ship_prefixes = list("TTV" = "a transport", "TTV" = "a luxury transit", "TTV" = "a priority transit", "TTV" = "a secure data courier") //ship names: big rivers @@ -725,7 +732,7 @@ /datum/lore/organization/tsc/grayson name = "Grayson Manufactories Ltd." - short_name = "Grayson" + short_name = "Grayson " acronym = "GM" desc = "Grayson Manufactories Ltd., true to its name, mines, refines, and produces iron, steel, aluminum, and other metals for use in casing and other production before selling them. They are also known for reviving their old traditions of supplying general materials ready for assembly for construction projects. These parts are interchangeable and considered somewhat cheap, but have proven to be generally and consecutively reliable.

As of current, Grayson Manufactories has a fairly neutral stance on the other major corporations, though has a history of maintaining a monopoly on specific trades through heavy competition and even rumors of industrial sabotage and use of strikebreakers." history = "" @@ -783,7 +790,7 @@ /datum/lore/organization/tsc/aether name = "Aether Atmospherics & Recycling" - short_name = "Aether" + short_name = "Aether " acronym = "AAR" desc = "Aether Atmospherics and Recycling is the prime maintainer and provider of atmospherics systems across both the many ships that navigate the vast expanses of space, and the life support on current and future Human colonies. The byproducts from the filtration of atmospheres across the galaxy are then resold for a variety of uses to those willing to buy. With the nature of their services, most work they do is contracted for construction of these systems, or staffing to maintain them for colonies across human space." history = "" @@ -830,7 +837,7 @@ /datum/lore/organization/tsc/focalpoint name = "Focal Point Energistics" - short_name = "Focal" + short_name = "Focal " acronym = "FPE" desc = "Focal Point Energistics is an electrical engineering solutions firm originally formed as a conglomerate of Earth power companies and affiliates. Focal Point manufactures and distributes vital components in modern power grids, such as TEGs, PSUs and their specialty product, the SMES. The company is often consulted and contracted by larger organisations due to their expertise in their field." history = "" @@ -885,10 +892,66 @@ destination_names = list( "Focal Point HQ" ) + +/datum/lore/organization/tsc/starlanes + name = "StarFlight Inc." + short_name = "StarFlight " + acronym = "SFI" + desc = "Founded in 2437 by Astara Junea, StarFlight Incorporated is now one of the biggest passenger liner businesses in human-occupied space and has even begun breaking into alien markets - all despite a rocky start, and several high-profile ship disappearances and shipjackings. With space traffic at an all-time high, it's a depressing reality that SFI's incidents are just a tiny drop in the bucket compared to everything else going on." + history = "" + work = "luxury, business, and economy passenger flights" + headquarters = "Spin Aerostat, Jupiter" + motto = "Sic itur ad astra" + scan_exempt = TRUE + + ship_prefixes = list("SFI-X" = "a VIP liner", "SFI-L" = "a luxury liner", "SFI-B" = "a business liner", "SFI-E" = "an economy liner", "SFI-M" = "a mixed class liner", "SFI-S" = "a sightseeing") + flight_types = list( //no military-sounding ones here + "flight", + "route", + "tour" + ) + ship_names = list( + "Rhea", + "Ostritch", + "Cassowary", + "Emu", + "Kiwi", + "Duck", + "Swan", + "Chachalaca", + "Curassow", + "Guan", + "Guineafowl", + "Pheasant", + "Turkey", + "Francolin", + "Loon", + "Penguin", + "Grebe", + "Flamingo", + "Stork", + "Ibis", + "Heron", + "Pelican", + "Spoonbill", + "Shoebill", + "Gannet", + "Cormorant", + "Osprey", + "Kite", + "Hawk", + "Falcon", + "Caracara" + ) + destination_names = list( + "a resort planet", + "a beautiful ring system", + "a ski-resort world" + ) /datum/lore/organization/tsc/independent name = "Independent Pilots Association" - short_name = "Independent" + short_name = "Independent " acronym = "IPA" desc = "Though less common now than they were in the decades before the Sol Economic Organization took power, independent traders remain an important part of the galactic economy, owing in no small part to protective tariffs established by the Free Trade Union in the late twenty-fourth century. Further out on the frontier, independent pilots are often the only people keeping freight and supplies moving." history = "" @@ -897,6 +960,14 @@ motto = "N/A" ship_prefixes = list("IEV" = "a prospecting", "IEC" = "a prospecting", "IFV" = "a bulk freight", "ITV" = "a passenger transport", "ITC" = "a just-in-time delivery", "IPV" = "a patrol", "IHV" = "a bounty hunting", "ICC" = "an escort") + flight_types = list( + "flight", + "mission", + "route", + "operation", + "assignment", + "contract" + ) destination_names = list() //we have no hqs or facilities of our own // Other @@ -904,7 +975,7 @@ //SPACE LAW /datum/lore/organization/other/sysdef name = "System Defense Force" - short_name = "SysDef" + short_name = "SysDef " acronym = "SDF" desc = "Localized militias are used to secure systems throughout inhabited space. By levying and maintaining these local militia forces, governments can use their fleets for more important matters. System Defense Forces tend to be fairly poorly trained and modestly equipped compared to genuine military fleets, but are more than capable of contending with small-time pirates, and can generally stall greater threats long enough for reinforcements to arrive. They're also typically responsible for space-based SAR operations in their system." history = "" @@ -914,7 +985,7 @@ scan_exempt = TRUE //we're the laaaaaw, we don't impersonate people and stuff autogenerate_destination_names = FALSE - ship_prefixes = list ("SDB" = "a patrol", "SDF" = "a patrol", "SDV" = "a patrol", "SDB" = "an escort", "SDF" = "an escort", "SDV" = "an escort", "SAR" = "a search and rescue", "SDT" = "a logistics", "SDT" = "a resupply") //b = boat, f = fleet, v = vessel, t = tender + ship_prefixes = list ("SDB" = "a patrol", "SDF" = "a patrol", "SDV" = "a patrol", "SDB" = "an escort", "SDF" = "an escort", "SDV" = "an escort", "SAR" = "a search and rescue", "SDT" = "a logistics", "SDT" = "a resupply", "SDJ" = "a prisoner transport") //b = boat, f = fleet, v = vessel, t = tender //ship names: weapons ship_names = list( "Sword", @@ -990,7 +1061,7 @@ /datum/lore/organization/gov/solgov name = "Solar Confederate Government" - short_name = "SolGov" + short_name = "SolGov " acronym = "SCG" desc = "SolGov is a decentralized confederation of human governmental entities based on Luna, Sol, which defines top-level law for their member states. \ Member states receive various benefits such as defensive pacts, trade agreements, social support and funding, and being able to participate \ @@ -1003,7 +1074,7 @@ scan_exempt = TRUE //it would look pretty weird if the SCG were caught impersonating other people autogenerate_destination_names = TRUE - ship_prefixes = list("SCG-T" = "a transportation", "SCG-D" = "a diplomatic", "SCG-F" = "a freight") + ship_prefixes = list("SCG-T" = "a transportation", "SCG-D" = "a diplomatic", "SCG-F" = "a freight", "SCG-J" = "a prisoner transfer") //earth's biggest impact craters ship_names = list( "Wabar", @@ -1079,7 +1150,8 @@ "Mars", "Titan", "Europa", - "the Jovian subcluster" + "the Jovian subcluster", + "a SolGov embassy" ) // autogen will add a lot of other places as well. @@ -1087,9 +1159,97 @@ // Military // Used for Para-Military groups right now! Pair of placeholder-ish PMCs. +/datum/lore/organization/mil/usdf + name = "United Sol Defense Force" + short_name = "" //Doesn't cause whitespace any more, with a little sneaky low-effort workaround + acronym = "USDF" + desc = "The USDF is the dedicated military force of SolGov, originally formed by the United Nations. It is the dominant superpower of the Orion Spur, and is able to project its influence well into parts of the Perseus and Sagittarius arms of the galaxy. However, regions beyond that are too far for the USDF to be a major player." + history = "" + work = "peacekeeping and piracy suppression" + headquarters = "Paris, Earth" + motto = "" + scan_exempt = TRUE + autogenerate_destination_names = TRUE + + ship_prefixes = list ("USDF" = "a logistical", "USDF" = "a training", "USDF" = "a patrol", "USDF" = "a piracy suppression", "USDF" = "a peacekeeping", "USDF" = "a relief", "USDF" = "an escort", "USDF" = "a search and rescue") + ship_names = list( + "Aphrodite", + "Apollo", + "Ares", + "Artemis", + "Athena", + "Demeter", + "Dionysus", + "Hades", + "Hephaestus", + "Hera", + "Hermes", + "Hestia", + "Poseidon", + "Zeus", + "Achlys", + "Aether", + "Aion", + "Ananke", + "Chaos", + "Chronos", + "Erebus", + "Eros", + "Gaia", + "Hemera", + "Hypnos", + "Nemesis", + "Nyx", + "Phanes", + "Pontus", + "Tartarus", + "Thalassa", + "Thanatos", + "Uranus", + "Coeus", + "Crius", + "Cronus", + "Hyperion", + "Iapetus", + "Mnemosyne", + "Oceanus", + "Phoebe", + "Rhea", + "Tethys", + "Theia", + "Themis", + "Asteria", + "Astraeus", + "Atlas", + "Aura", + "Clymene", + "Dione", + "Helios", + "Selene", + "Eos", + "Epimetheus", + "Eurybia", + "Eurynome", + "Lelantos", + "Leto", + "Menoetius", + "Metis", + "Ophion", + "Pallas", + "Perses", + "Prometheus", + "Styx", + ) + destination_names = list( + "USDF HQ", + "a USDF staging facility on the edge of SolGov territory", + "a USDF resupply depot", + "a USDF shipyard in Sol" + ) + /datum/lore/organization/mil/pcrc name = "Proxima Centauri Risk Control" - short_name = "Proxima Centauri" + short_name = "Proxima Centauri " acronym = "PCRC" desc = "Not a whole lot is known about the private security company known as PCRC, but it is known that they're irregularly contracted by the larger TSCs for certain delicate matters. Much of the company's inner workings are shrouded in mystery, and most citizens have never even heard of them." history = "" @@ -1100,6 +1260,14 @@ autogenerate_destination_names = TRUE ship_prefixes = list("PCRC" = "a risk control", "PCRC" = "a private security") + flight_types = list( + "flight", + "mission", + "route", + "operation", + "assignment", + "contract" + ) //law/protection terms ship_names = list( "Detective", @@ -1139,7 +1307,7 @@ //I'm covered in beeeeeeees! /datum/lore/organization/mil/hive name = "HIVE Security" - short_name = "HIVE" + short_name = "HIVE " acronym = "HVS" desc = "HIVE Security is a merging of several much smaller freelance companies, and operates throughout civilized space. Unlike some companies, it operates no planetside facilities whatsoever, opting instead for larger flotillas that are serviced by innumerable smallcraft. As with any PMC there's no small amount of controversy surrounding them, but they try to keep their operations cleaner than their competitors. They're fairly well known for running 'mercy' operations, which are low-cost no-strings-attached contracts for those in dire need." history = "" @@ -1149,7 +1317,15 @@ scan_exempt = TRUE //we're technically kinda-good guys, so we don't do shady stuff autogenerate_destination_names = TRUE - ship_prefixes = list("HPF" = "a secure freight", "HPS" = "a logistics", "HPV" = "a patrol", "HPH" = "a bounty hunting", "HPX" = "an experimental", "HPC" = "a command", "HPI" = "a mercy") + ship_prefixes = list("HPF" = "a secure freight", "HPT" = "a training", "HPS" = "a logistics", "HPV" = "a patrol", "HPH" = "a bounty hunting", "HPX" = "an experimental", "HPC" = "a command", "HPI" = "a mercy") + flight_types = list( + "flight", + "mission", + "route", + "operation", + "assignment", + "contract" + ) //animals, preferably predators, all factual/extant critters ship_names = list( "Wolf", @@ -1215,7 +1391,7 @@ //intentionally edgy a.f. /datum/lore/organization/mil/blackstar name = "Blackstar Legion" - short_name = "Blackstar" + short_name = "Blackstar " acronym = "BSL" desc = "Shrouded in mystery and controversy, Blackstar Legion is said to have its roots in pre-FTL Sol private military contractors. Their reputation means that most upstanding corporations and governments are hesitant to call upon them, whilst their prices put them out of the reach of most private individuals. As a result, they're mostly seen as the hired thugs of frontier governments that don't (or won't) answer to SolGov." history = "" @@ -1224,7 +1400,15 @@ motto = "" autogenerate_destination_names = TRUE - ship_prefixes = list("BSF" = "a secure freight", "BSS" = "a logistics", "BSV" = "a patrol", "BSH" = "a security", "BSX" = "an experimental", "BSC" = "a command") + ship_prefixes = list("BSF" = "a secure freight", "BST" = "a training", "BSS" = "a logistics", "BSV" = "a patrol", "BSH" = "a security", "BSX" = "an experimental", "BSC" = "a command") + flight_types = list( + "flight", + "mission", + "route", + "operation", + "assignment", + "contract" + ) //edgy mythological critters! ship_names = list( "Dragon", diff --git a/code/modules/lore_codex/lore_data_vr/orgs.dm b/code/modules/lore_codex/lore_data_vr/orgs.dm index 54c1a63d335..54a38bed000 100644 --- a/code/modules/lore_codex/lore_data_vr/orgs.dm +++ b/code/modules/lore_codex/lore_data_vr/orgs.dm @@ -34,6 +34,6 @@ /datum/lore/codex/category/auto_org/mil - name = "Para-Militaries & Private Security" + name = "Military Forces & Private Security" auto_keywords = list("Mil","Military","Militaries","Security") desired_type = /datum/lore/organization/mil From 673e4cd53bdb700b9f8bda1ed2af1a4515dfaded Mon Sep 17 00:00:00 2001 From: Andromeda-K22 Date: Fri, 23 Aug 2019 06:50:01 -0400 Subject: [PATCH 15/18] jukebox additions + config changes --- code/game/machinery/jukebox.dm | 717 +++++++++++++++-------------- code/modules/media/media_tracks.dm | 135 +++--- jukebox.json | 50 ++ nano/templates/jukebox.tmpl | 5 + 4 files changed, 491 insertions(+), 416 deletions(-) create mode 100644 jukebox.json diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm index 5c94d8a1148..a81859613bb 100644 --- a/code/game/machinery/jukebox.dm +++ b/code/game/machinery/jukebox.dm @@ -1,353 +1,364 @@ -// -// Media Player Jukebox -// Rewritten by Leshana from existing Polaris code, merging in D2K5 and N3X15 work -// - -#define JUKEMODE_NEXT 1 // Advance to next song in the track list -#define JUKEMODE_RANDOM 2 // Not shuffle, randomly picks next each time. -#define JUKEMODE_REPEAT_SONG 3 // Play the same song over and over -#define JUKEMODE_PLAY_ONCE 4 // Play, then stop. - -/obj/machinery/media/jukebox/ - name = "space jukebox" - icon = 'icons/obj/jukebox.dmi' - icon_state = "jukebox2-nopower" - var/state_base = "jukebox2" - anchored = 1 - density = 1 - power_channel = EQUIP - use_power = 1 - idle_power_usage = 10 - active_power_usage = 100 - circuit = /obj/item/weapon/circuitboard/jukebox - - // Vars for hacking - var/datum/wires/jukebox/wires = null - var/hacked = 0 // Whether to show the hidden songs or not - var/freq = 0 // Currently no effect, will return in phase II of mediamanager. - //VOREStation Add - var/loop_mode = JUKEMODE_PLAY_ONCE // Behavior when finished playing a song - var/max_queue_len = 3 // How many songs are we allowed to queue up? - var/list/queue = list() - //VOREStation Add End - var/datum/track/current_track - var/list/datum/track/tracks = list( - new/datum/track("Beyond", 'sound/ambience/ambispace.ogg'), - new/datum/track("Clouds of Fire", 'sound/music/clouds.s3m'), - new/datum/track("D`Bert", 'sound/music/title2.ogg'), - new/datum/track("D`Fort", 'sound/ambience/song_game.ogg'), - new/datum/track("Floating", 'sound/music/main.ogg'), - new/datum/track("Endless Space", 'sound/music/space.ogg'), - new/datum/track("Part A", 'sound/misc/TestLoop1.ogg'), - new/datum/track("Scratch", 'sound/music/title1.ogg'), - new/datum/track("Trai`Tor", 'sound/music/traitor.ogg'), - new/datum/track("Stellar Transit", 'sound/ambience/space/space_serithi.ogg'), - ) - - // Only visible if hacked - var/list/datum/track/secret_tracks = list( - new/datum/track("Clown", 'sound/music/clown.ogg'), - new/datum/track("Space Asshole", 'sound/music/space_asshole.ogg'), - new/datum/track("Thunderdome", 'sound/music/THUNDERDOME.ogg'), - new/datum/track("Russkiy rep Diskoteka", 'sound/music/russianrapdisco.ogg') - ) - -/obj/machinery/media/jukebox/New() - ..() - default_apply_parts() - wires = new/datum/wires/jukebox(src) - update_icon() - -/obj/machinery/media/jukebox/Destroy() - qdel(wires) - wires = null - ..() - -// On initialization, copy our tracks from the global list -/obj/machinery/media/jukebox/initialize() - . = ..() - if(LAZYLEN(all_jukebox_tracks)) //Global list has tracks - tracks.Cut() - secret_tracks.Cut() - for(var/datum/track/T in all_jukebox_tracks) //Load them - if(T.secret) - secret_tracks |= T - else - tracks |= T - else if(!LAZYLEN(tracks)) //We don't even have default tracks - stat |= BROKEN // No tracks configured this round! - -/obj/machinery/media/jukebox/process() - if(!playing) - return - if(inoperable()) - disconnect_media_source() - playing = 0 - return - // If the current track isn't finished playing, let it keep going - if(current_track && world.time < media_start_time + current_track.duration) - return - // Otherwise time to pick a new one! - if(queue.len > 0) - current_track = queue[1] - queue.Cut(1, 2) // Remove the item we just took off the list - else - // Oh... nothing in queue? Well then pick next according to our rules - switch(loop_mode) - if(JUKEMODE_NEXT) - var/curTrackIndex = max(1, tracks.Find(current_track)) - var/newTrackIndex = (curTrackIndex % tracks.len) + 1 // Loop back around if past end - current_track = tracks[newTrackIndex] - if(JUKEMODE_RANDOM) - var/previous_track = current_track - do - current_track = pick(tracks) - while(current_track == previous_track && tracks.len > 1) - if(JUKEMODE_REPEAT_SONG) - current_track = current_track - if(JUKEMODE_PLAY_ONCE) - current_track = null - playing = 0 - update_icon() - updateDialog() - start_stop_song() - -// Tells the media manager to start or stop playing based on current settings. -/obj/machinery/media/jukebox/proc/start_stop_song() - if(current_track && playing) - media_url = current_track.url - media_start_time = world.time - visible_message("\The [src] begins to play [current_track.display()].") - else - media_url = "" - media_start_time = 0 - update_music() - -/obj/machinery/media/jukebox/proc/set_hacked(var/newhacked) - if (hacked == newhacked) return - hacked = newhacked - if (hacked) - tracks.Add(secret_tracks) - else - tracks.Remove(secret_tracks) - updateDialog() - -/obj/machinery/media/jukebox/attackby(obj/item/W as obj, mob/user as mob) - src.add_fingerprint(user) - - if(default_deconstruction_screwdriver(user, W)) - return - if(default_deconstruction_crowbar(user, W)) - return - if(W.is_wirecutter()) - return wires.Interact(user) - if(istype(W, /obj/item/device/multitool)) - return wires.Interact(user) - if(W.is_wrench()) - if(playing) - StopPlaying() - user.visible_message("[user] has [anchored ? "un" : ""]secured \the [src].", "You [anchored ? "un" : ""]secure \the [src].") - anchored = !anchored - playsound(src, W.usesound, 50, 1) - power_change() - update_icon() - if(!anchored) - playing = 0 - disconnect_media_source() - else - update_media_source() - return - return ..() - -/obj/machinery/media/jukebox/power_change() - if(!powered(power_channel) || !anchored) - stat |= NOPOWER - else - stat &= ~NOPOWER - - if(stat & (NOPOWER|BROKEN) && playing) - StopPlaying() - update_icon() - -/obj/machinery/media/jukebox/update_icon() - overlays.Cut() - if(stat & (NOPOWER|BROKEN) || !anchored) - if(stat & BROKEN) - icon_state = "[state_base]-broken" - else - icon_state = "[state_base]-nopower" - return - icon_state = state_base - if(playing) - if(emagged) - overlays += "[state_base]-emagged" - else - overlays += "[state_base]-running" - if (panel_open) - overlays += "panel_open" - -/obj/machinery/media/jukebox/Topic(href, href_list) - if(..() || !(Adjacent(usr) || istype(usr, /mob/living/silicon))) - return - - if(!anchored) - to_chat(usr, "You must secure \the [src] first.") - return - - if(inoperable()) - to_chat(usr, "\The [src] doesn't appear to function.") - return - - if(href_list["change_track"]) - var/datum/track/T = locate(href_list["change_track"]) in tracks - if(istype(T)) - current_track = T - StartPlaying() - else if(href_list["loopmode"]) - var/newval = text2num(href_list["loopmode"]) - loop_mode = sanitize_inlist(newval, list(JUKEMODE_NEXT, JUKEMODE_RANDOM, JUKEMODE_REPEAT_SONG, JUKEMODE_PLAY_ONCE), loop_mode) - else if(href_list["volume"]) - var/newval = input("Choose Jukebox volume (0-100%)", "Jukebox volume", round(volume * 100.0)) - newval = sanitize_integer(text2num(newval), min = 0, max = 100, default = volume * 100.0) - volume = newval / 100.0 - update_music() // To broadcast volume change without restarting song - else if(href_list["stop"]) - StopPlaying() - else if(href_list["play"]) - if(emagged) - playsound(src.loc, 'sound/items/AirHorn.ogg', 100, 1) - for(var/mob/living/carbon/M in ohearers(6, src)) - if(M.get_ear_protection() >= 2) - continue - M.sleeping = 0 - M.stuttering += 20 - M.ear_deaf += 30 - M.Weaken(3) - if(prob(30)) - M.Stun(10) - M.Paralyse(4) - else - M.make_jittery(500) - spawn(15) - explode() - else if(current_track == null) - to_chat(usr, "No track selected.") - else - StartPlaying() - - return 1 - -/obj/machinery/media/jukebox/interact(mob/user) - if(inoperable()) - to_chat(usr, "\The [src] doesn't appear to function.") - return - ui_interact(user) - -/obj/machinery/media/jukebox/ui_interact(mob/user, ui_key = "jukebox", var/datum/nanoui/ui = null, var/force_open = 1) - var/title = "RetroBox - Space Style" - var/data[0] - - if(operable()) - data["playing"] = playing - data["hacked"] = hacked - data["max_queue_len"] = max_queue_len - data["media_start_time"] = media_start_time - data["loop_mode"] = loop_mode - data["volume"] = volume - if(current_track) - data["current_track_ref"] = "\ref[current_track]" // Convenient shortcut - data["current_track"] = current_track.toNanoList() - data["percent"] = playing ? min(100, round(world.time - media_start_time) / current_track.duration) : 0; - - var/list/nano_tracks = new - for(var/datum/track/T in tracks) - nano_tracks[++nano_tracks.len] = T.toNanoList() - data["tracks"] = nano_tracks - - // update the ui if it exists, returns null if no ui is passed/found - ui = GLOB.nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) - if (!ui) - ui = new(user, src, ui_key, "jukebox.tmpl", title, 450, 600) - ui.set_initial_data(data) - ui.open() - ui.set_auto_update(playing) - -/obj/machinery/media/jukebox/attack_ai(mob/user as mob) - return src.attack_hand(user) - -/obj/machinery/media/jukebox/attack_hand(var/mob/user as mob) - interact(user) - -/obj/machinery/media/jukebox/proc/explode() - walk_to(src,0) - src.visible_message("\the [src] blows apart!", 1) - - explosion(src.loc, 0, 0, 1, rand(1,2), 1) - - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(3, 1, src) - s.start() - - new /obj/effect/decal/cleanable/blood/oil(src.loc) - qdel(src) - -/obj/machinery/media/jukebox/attackby(obj/item/W as obj, mob/user as mob) - src.add_fingerprint(user) - - if(default_deconstruction_screwdriver(user, W)) - return - if(default_deconstruction_crowbar(user, W)) - return - if(W.is_wrench()) - if(playing) - StopPlaying() - user.visible_message("[user] has [anchored ? "un" : ""]secured \the [src].", "You [anchored ? "un" : ""]secure \the [src].") - anchored = !anchored - playsound(src, W.usesound, 50, 1) - power_change() - update_icon() - return - return ..() - -/obj/machinery/media/jukebox/emag_act(var/remaining_charges, var/mob/user) - if(!emagged) - emagged = 1 - StopPlaying() - visible_message("\The [src] makes a fizzling sound.") - update_icon() - return 1 - -/obj/machinery/media/jukebox/proc/StopPlaying() - playing = 0 - update_use_power(1) - update_icon() - start_stop_song() - -/obj/machinery/media/jukebox/proc/StartPlaying() - if(!current_track) - return - playing = 1 - update_use_power(2) - update_icon() - start_stop_song() - updateDialog() - -// Advance to the next track - Don't start playing it unless we were already playing -/obj/machinery/media/jukebox/proc/NextTrack() - if(!tracks.len) return - var/curTrackIndex = max(1, tracks.Find(current_track)) - var/newTrackIndex = (curTrackIndex % tracks.len) + 1 // Loop back around if past end - current_track = tracks[newTrackIndex] - if(playing) - start_stop_song() - updateDialog() - -// Advance to the next track - Don't start playing it unless we were already playing -/obj/machinery/media/jukebox/proc/PrevTrack() - if(!tracks.len) return - var/curTrackIndex = max(1, tracks.Find(current_track)) - var/newTrackIndex = curTrackIndex == 1 ? tracks.len : curTrackIndex - 1 - current_track = tracks[newTrackIndex] - if(playing) - start_stop_song() - updateDialog() +// +// Media Player Jukebox +// Rewritten by Leshana from existing Polaris code, merging in D2K5 and N3X15 work +// + +#define JUKEMODE_NEXT 1 // Advance to next song in the track list +#define JUKEMODE_RANDOM 2 // Not shuffle, randomly picks next each time. +#define JUKEMODE_REPEAT_SONG 3 // Play the same song over and over +#define JUKEMODE_PLAY_ONCE 4 // Play, then stop. + +/obj/machinery/media/jukebox/ + name = "space jukebox" + icon = 'icons/obj/jukebox.dmi' + icon_state = "jukebox2-nopower" + var/state_base = "jukebox2" + anchored = 1 + density = 1 + power_channel = EQUIP + use_power = 1 + idle_power_usage = 10 + active_power_usage = 100 + circuit = /obj/item/weapon/circuitboard/jukebox + + // Vars for hacking + var/datum/wires/jukebox/wires = null + var/hacked = 0 // Whether to show the hidden songs or not + var/freq = 0 // Currently no effect, will return in phase II of mediamanager. + //VOREStation Add + var/loop_mode = JUKEMODE_PLAY_ONCE // Behavior when finished playing a song + var/max_queue_len = 3 // How many songs are we allowed to queue up? + var/list/queue = list() + //VOREStation Add End + var/current_genre = "Electronic" //What is our current genre? + var/list/genres = list("Electronic", "Rock", "Orchestral", "Folk", "Jazz", "Western") //Avaliable genres. + var/datum/track/current_track + var/list/datum/track/tracks = list( + new/datum/track("Beyond", 'sound/ambience/ambispace.ogg'), + new/datum/track("Clouds of Fire", 'sound/music/clouds.s3m'), + new/datum/track("D`Bert", 'sound/music/title2.ogg'), + new/datum/track("D`Fort", 'sound/ambience/song_game.ogg'), + new/datum/track("Floating", 'sound/music/main.ogg'), + new/datum/track("Endless Space", 'sound/music/space.ogg'), + new/datum/track("Part A", 'sound/misc/TestLoop1.ogg'), + new/datum/track("Scratch", 'sound/music/title1.ogg'), + new/datum/track("Trai`Tor", 'sound/music/traitor.ogg'), + new/datum/track("Stellar Transit", 'sound/ambience/space/space_serithi.ogg'), + ) + + // Only visible if hacked + var/list/datum/track/secret_tracks = list( + new/datum/track("Clown", 'sound/music/clown.ogg'), + new/datum/track("Space Asshole", 'sound/music/space_asshole.ogg'), + new/datum/track("Thunderdome", 'sound/music/THUNDERDOME.ogg'), + new/datum/track("Russkiy rep Diskoteka", 'sound/music/russianrapdisco.ogg') + ) + +/obj/machinery/media/jukebox/New() + ..() + default_apply_parts() + wires = new/datum/wires/jukebox(src) + update_icon() + +/obj/machinery/media/jukebox/Destroy() + qdel(wires) + wires = null + ..() + +// On initialization, copy our tracks from the global list +/obj/machinery/media/jukebox/initialize() + . = ..() + if(LAZYLEN(all_jukebox_tracks)) //Global list has tracks + tracks.Cut() + secret_tracks.Cut() + for(var/datum/track/T in all_jukebox_tracks) //Load them + if(!T.jukebox) + continue + if(T.secret) + secret_tracks |= T + else + tracks |= T + else if(!LAZYLEN(tracks)) //We don't even have default tracks + stat |= BROKEN // No tracks configured this round! + +/obj/machinery/media/jukebox/process() + if(!playing) + return + if(inoperable()) + disconnect_media_source() + playing = 0 + return + // If the current track isn't finished playing, let it keep going + if(current_track && world.time < media_start_time + current_track.duration) + return + // Otherwise time to pick a new one! + if(queue.len > 0) + current_track = queue[1] + queue.Cut(1, 2) // Remove the item we just took off the list + else + // Oh... nothing in queue? Well then pick next according to our rules + switch(loop_mode) + if(JUKEMODE_NEXT) + var/curTrackIndex = max(1, tracks.Find(current_track)) + var/newTrackIndex = (curTrackIndex % tracks.len) + 1 // Loop back around if past end + current_track = tracks[newTrackIndex] + if(JUKEMODE_RANDOM) + var/previous_track = current_track + do + current_track = pick(tracks) + while(current_track == previous_track && tracks.len > 1) + if(JUKEMODE_REPEAT_SONG) + current_track = current_track + if(JUKEMODE_PLAY_ONCE) + current_track = null + playing = 0 + update_icon() + updateDialog() + start_stop_song() + +// Tells the media manager to start or stop playing based on current settings. +/obj/machinery/media/jukebox/proc/start_stop_song() + if(current_track && playing) + media_url = current_track.url + media_start_time = world.time + visible_message("\The [src] begins to play [current_track.display()].") + else + media_url = "" + media_start_time = 0 + update_music() + +/obj/machinery/media/jukebox/proc/set_hacked(var/newhacked) + if (hacked == newhacked) return + hacked = newhacked + if (hacked) + tracks.Add(secret_tracks) + else + tracks.Remove(secret_tracks) + updateDialog() + +/obj/machinery/media/jukebox/attackby(obj/item/W as obj, mob/user as mob) + src.add_fingerprint(user) + + if(default_deconstruction_screwdriver(user, W)) + return + if(default_deconstruction_crowbar(user, W)) + return + if(W.is_wirecutter()) + return wires.Interact(user) + if(istype(W, /obj/item/device/multitool)) + return wires.Interact(user) + if(W.is_wrench()) + if(playing) + StopPlaying() + user.visible_message("[user] has [anchored ? "un" : ""]secured \the [src].", "You [anchored ? "un" : ""]secure \the [src].") + anchored = !anchored + playsound(src, W.usesound, 50, 1) + power_change() + update_icon() + if(!anchored) + playing = 0 + disconnect_media_source() + else + update_media_source() + return + return ..() + +/obj/machinery/media/jukebox/power_change() + if(!powered(power_channel) || !anchored) + stat |= NOPOWER + else + stat &= ~NOPOWER + + if(stat & (NOPOWER|BROKEN) && playing) + StopPlaying() + update_icon() + +/obj/machinery/media/jukebox/update_icon() + overlays.Cut() + if(stat & (NOPOWER|BROKEN) || !anchored) + if(stat & BROKEN) + icon_state = "[state_base]-broken" + else + icon_state = "[state_base]-nopower" + return + icon_state = state_base + if(playing) + if(emagged) + overlays += "[state_base]-emagged" + else + overlays += "[state_base]-running" + if (panel_open) + overlays += "panel_open" + +/obj/machinery/media/jukebox/Topic(href, href_list) + if(..() || !(Adjacent(usr) || istype(usr, /mob/living/silicon))) + return + + if(!anchored) + to_chat(usr, "You must secure \the [src] first.") + return + + if(inoperable()) + to_chat(usr, "\The [src] doesn't appear to function.") + return + + if(href_list["change_track"]) + var/datum/track/T = locate(href_list["change_track"]) in tracks + if(istype(T)) + current_track = T + StartPlaying() + else if(href_list["change_genre"]) + var/new_genre = input("Choose Genre", "Genre Selection") in genres + current_genre = new_genre + else if(href_list["loopmode"]) + var/newval = text2num(href_list["loopmode"]) + loop_mode = sanitize_inlist(newval, list(JUKEMODE_NEXT, JUKEMODE_RANDOM, JUKEMODE_REPEAT_SONG, JUKEMODE_PLAY_ONCE), loop_mode) + else if(href_list["volume"]) + var/newval = input("Choose Jukebox volume (0-100%)", "Jukebox volume", round(volume * 100.0)) + newval = sanitize_integer(text2num(newval), min = 0, max = 100, default = volume * 100.0) + volume = newval / 100.0 + update_music() // To broadcast volume change without restarting song + else if(href_list["stop"]) + StopPlaying() + else if(href_list["play"]) + if(emagged) + playsound(src.loc, 'sound/items/AirHorn.ogg', 100, 1) + for(var/mob/living/carbon/M in ohearers(6, src)) + if(M.get_ear_protection() >= 2) + continue + M.sleeping = 0 + M.stuttering += 20 + M.ear_deaf += 30 + M.Weaken(3) + if(prob(30)) + M.Stun(10) + M.Paralyse(4) + else + M.make_jittery(500) + spawn(15) + explode() + else if(current_track == null) + to_chat(usr, "No track selected.") + else + StartPlaying() + + return 1 + +/obj/machinery/media/jukebox/interact(mob/user) + if(inoperable()) + to_chat(usr, "\The [src] doesn't appear to function.") + return + ui_interact(user) + +/obj/machinery/media/jukebox/ui_interact(mob/user, ui_key = "jukebox", var/datum/nanoui/ui = null, var/force_open = 1) + var/title = "RetroBox - Space Style" + var/data[0] + + if(operable()) + data["playing"] = playing + data["hacked"] = hacked + data["max_queue_len"] = max_queue_len + data["media_start_time"] = media_start_time + data["loop_mode"] = loop_mode + data["volume"] = volume + if(current_track) + data["current_track_ref"] = "\ref[current_track]" // Convenient shortcut + data["current_track"] = current_track.toNanoList() + data["percent"] = playing ? min(100, round(world.time - media_start_time) / current_track.duration) : 0; + + data["current_genre"] = current_genre + + var/list/nano_tracks = new + for(var/datum/track/T in tracks) + if(T.genre != current_genre) + continue + nano_tracks[++nano_tracks.len] = T.toNanoList() + data["tracks"] = nano_tracks + + // update the ui if it exists, returns null if no ui is passed/found + ui = GLOB.nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + if (!ui) + ui = new(user, src, ui_key, "jukebox.tmpl", title, 450, 600) + ui.set_initial_data(data) + ui.open() + ui.set_auto_update(playing) + +/obj/machinery/media/jukebox/attack_ai(mob/user as mob) + return src.attack_hand(user) + +/obj/machinery/media/jukebox/attack_hand(var/mob/user as mob) + interact(user) + +/obj/machinery/media/jukebox/proc/explode() + walk_to(src,0) + src.visible_message("\the [src] blows apart!", 1) + + explosion(src.loc, 0, 0, 1, rand(1,2), 1) + + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(3, 1, src) + s.start() + + new /obj/effect/decal/cleanable/blood/oil(src.loc) + qdel(src) + +/obj/machinery/media/jukebox/attackby(obj/item/W as obj, mob/user as mob) + src.add_fingerprint(user) + + if(default_deconstruction_screwdriver(user, W)) + return + if(default_deconstruction_crowbar(user, W)) + return + if(W.is_wrench()) + if(playing) + StopPlaying() + user.visible_message("[user] has [anchored ? "un" : ""]secured \the [src].", "You [anchored ? "un" : ""]secure \the [src].") + anchored = !anchored + playsound(src, W.usesound, 50, 1) + power_change() + update_icon() + return + return ..() + +/obj/machinery/media/jukebox/emag_act(var/remaining_charges, var/mob/user) + if(!emagged) + emagged = 1 + StopPlaying() + visible_message("\The [src] makes a fizzling sound.") + update_icon() + return 1 + +/obj/machinery/media/jukebox/proc/StopPlaying() + playing = 0 + update_use_power(1) + update_icon() + start_stop_song() + +/obj/machinery/media/jukebox/proc/StartPlaying() + if(!current_track) + return + playing = 1 + update_use_power(2) + update_icon() + start_stop_song() + updateDialog() + +// Advance to the next track - Don't start playing it unless we were already playing +/obj/machinery/media/jukebox/proc/NextTrack() + if(!tracks.len) return + var/curTrackIndex = max(1, tracks.Find(current_track)) + var/newTrackIndex = (curTrackIndex % tracks.len) + 1 // Loop back around if past end + current_track = tracks[newTrackIndex] + if(playing) + start_stop_song() + updateDialog() + +// Advance to the next track - Don't start playing it unless we were already playing +/obj/machinery/media/jukebox/proc/PrevTrack() + if(!tracks.len) return + var/curTrackIndex = max(1, tracks.Find(current_track)) + var/newTrackIndex = curTrackIndex == 1 ? tracks.len : curTrackIndex - 1 + current_track = tracks[newTrackIndex] + if(playing) + start_stop_song() + updateDialog() diff --git a/code/modules/media/media_tracks.dm b/code/modules/media/media_tracks.dm index 708e2a811ef..84eba4cad5d 100644 --- a/code/modules/media/media_tracks.dm +++ b/code/modules/media/media_tracks.dm @@ -1,63 +1,72 @@ -// -// Load the list of available music tracks for the jukebox (or other things that use music) -// - -// Music track available for playing in a media machine. -/datum/track - var/url // URL to load song from - var/title // Song title - var/artist // Song's creator - var/duration // Song length in deciseconds - var/secret // Show up in regular playlist or secret playlist? - var/lobby // Be one of the choices for lobby music? - -/datum/track/New(var/url, var/title, var/duration, var/artist = "", var/secret = 0, var/lobby = 0) - src.url = url - src.title = title - src.artist = artist - src.duration = duration - src.secret = secret - src.lobby = lobby - -/datum/track/proc/display() - var str = "\"[title]\"" - if(artist) - str += " by [artist]" - return str - -/datum/track/proc/toNanoList() - return list("ref" = "\ref[src]", "title" = title, "artist" = artist, "duration" = duration) - - -// Global list holding all configured jukebox tracks -var/global/list/all_jukebox_tracks = list() -var/global/list/all_lobby_tracks = list() - -// Read the jukebox configuration file on system startup. -/hook/startup/proc/load_jukebox_tracks() - var/jukebox_track_file = "config/jukebox.json" - if(!fexists(jukebox_track_file)) - warning("File not found: [jukebox_track_file]") - return - var/list/jsonData = json_decode(file2text(jukebox_track_file)) - if(!istype(jsonData)) - warning("Failed to read tracks from [jukebox_track_file], json_decode failed.") - for(var/entry in jsonData) - if(!istext(entry["url"])) - warning("[jukebox_track_file] entry [entry]: bad or missing 'url'") - continue - if(!istext(entry["title"])) - warning("[jukebox_track_file] entry [entry]: bad or missingg 'title'") - continue - if(!isnum(entry["duration"])) - warning("[jukebox_track_file] entry [entry]: bad or missing 'duration'") - continue - var/datum/track/T = new(entry["url"], entry["title"], entry["duration"]) - if(istext(entry["artist"])) - T.artist = entry["artist"] - T.secret = entry["secret"] ? 1 : 0 - T.lobby = entry["lobby"] ? 1 : 0 - all_jukebox_tracks += T - if(T.lobby) - all_lobby_tracks += T - return 1 +// +// Load the list of available music tracks for the jukebox (or other things that use music) +// + +// Music track available for playing in a media machine. +/datum/track + var/url // URL to load song from + var/title // Song title + var/artist // Song's creator + var/duration // Song length in deciseconds + var/secret // Show up in regular playlist or secret playlist? + var/lobby // Be one of the choices for lobby music? + var/jukebox // Does it even show up in the jukebox? + var/genre // What is the genre of the song? + +/datum/track/New(var/url, var/title, var/duration, var/artist = "", var/secret = 0, var/lobby = 0, var/jukebox = 0, var/genre = "") + src.url = url + src.title = title + src.artist = artist + src.duration = duration + src.secret = secret + src.lobby = lobby + src.jukebox = jukebox + src.genre = genre + +/datum/track/proc/display() + var str = "\"[title]\"" + if(artist) + str += " by [artist]" + return str + +/datum/track/proc/toNanoList() + return list("ref" = "\ref[src]", "title" = title, "artist" = artist, "duration" = duration) + + +// Global list holding all configured jukebox tracks +var/global/list/all_jukebox_tracks = list() +var/global/list/all_lobby_tracks = list() + +// Read the jukebox configuration file on system startup. +/hook/startup/proc/load_jukebox_tracks() + var/jukebox_track_file = "config/jukebox.json" + if(!fexists(jukebox_track_file)) + warning("File not found: [jukebox_track_file]") + return + var/list/jsonData = json_decode(file2text(jukebox_track_file)) + if(!istype(jsonData)) + warning("Failed to read tracks from [jukebox_track_file], json_decode failed.") + for(var/entry in jsonData) + if(!istext(entry["url"])) + warning("[jukebox_track_file] entry [entry]: bad or missing 'url'") + continue + if(!istext(entry["title"])) + warning("[jukebox_track_file] entry [entry]: bad or missingg 'title'") + continue + if(!isnum(entry["duration"])) + warning("[jukebox_track_file] entry [entry]: bad or missing 'duration'") + continue + var/datum/track/T = new(entry["url"], entry["title"], entry["duration"]) + if(istext(entry["artist"])) + T.artist = entry["artist"] + if(istext(entry["genre"])) + T.genre = entry["genre"] + T.secret = entry["secret"] ? 1 : 0 + T.lobby = entry["lobby"] ? 1 : 0 + T.jukebox = entry["jukebox"] ? 1 : 0 + if(istext(entry["genre"])) + T.genre = entry["genre"] + all_jukebox_tracks += T + if(T.lobby) + all_lobby_tracks += T + return 1 diff --git a/jukebox.json b/jukebox.json new file mode 100644 index 00000000000..4b0653274ed --- /dev/null +++ b/jukebox.json @@ -0,0 +1,50 @@ +[ +{ +"url": "https://s.put.re/bkZYkYwX.mp3", +"title": "Flip-Flap (Title One)", +"duration": 1500, +"artist": "X-CEED", +"secret": false, +"lobby": true +}, +{ +"url": "https://s.put.re/EzLP21Mp.mp3", +"title": "Robocop Theme (Title Two)", +"duration": 1180, +"artist": "Cboyardee.", +"secret": false, +"lobby": true +}, +{ +"url": "https://s.put.re/uDpZrL1L.mp3", +"title": "Tin Tin on the Moon (Remix)", +"duration": 2320, +"artist": "Jeroen Tel (Remixed by Cuboos)", +"secret": false, +"lobby": true +}, +{ +"url": "https://s.put.re/nNXTd9ko.mp3", +"title": "Phoron Will Make Us Rich", +"duration": 1370, +"artist": "EarthCrusher", +"secret": false, +"lobby": true +}, +{ +"url": "https://s.put.re/vrN9ATH7.mp3", +"title": "Spaceman's Dilemmia", +"duration": 2230, +"artist": "Carmen Miranda", +"secret": false, +"lobby": true +}, +{ +"url": "https://s.put.re/QgemNJPJ.mp3", +"title": "Banned from Argo", +"duration": 3200, +"artist": "Leslie Fish", +"secret": false, +"lobby": true +} +] \ No newline at end of file diff --git a/nano/templates/jukebox.tmpl b/nano/templates/jukebox.tmpl index 77edb9ed419..ddbc1909a56 100644 --- a/nano/templates/jukebox.tmpl +++ b/nano/templates/jukebox.tmpl @@ -39,6 +39,11 @@ Used In File(s): \code\game\machinery\jukebox.dm +

Current Genre: {{:data.current_genre}}

+
+ {{:helper.link('Change Genre' , 'play', {'change_genre' : 1}, data.genre == 1 ? 'disabled' : null, null)}} +
+

Available tracks:

{{for data.tracks}} From 455d91ed11901571ef9b02869b42122e4df942af Mon Sep 17 00:00:00 2001 From: Andromeda-K22 Date: Sat, 24 Aug 2019 01:57:37 -0400 Subject: [PATCH 16/18] this isn't right. --- jukebox.json | 50 -------------------------------------------------- 1 file changed, 50 deletions(-) delete mode 100644 jukebox.json diff --git a/jukebox.json b/jukebox.json deleted file mode 100644 index 4b0653274ed..00000000000 --- a/jukebox.json +++ /dev/null @@ -1,50 +0,0 @@ -[ -{ -"url": "https://s.put.re/bkZYkYwX.mp3", -"title": "Flip-Flap (Title One)", -"duration": 1500, -"artist": "X-CEED", -"secret": false, -"lobby": true -}, -{ -"url": "https://s.put.re/EzLP21Mp.mp3", -"title": "Robocop Theme (Title Two)", -"duration": 1180, -"artist": "Cboyardee.", -"secret": false, -"lobby": true -}, -{ -"url": "https://s.put.re/uDpZrL1L.mp3", -"title": "Tin Tin on the Moon (Remix)", -"duration": 2320, -"artist": "Jeroen Tel (Remixed by Cuboos)", -"secret": false, -"lobby": true -}, -{ -"url": "https://s.put.re/nNXTd9ko.mp3", -"title": "Phoron Will Make Us Rich", -"duration": 1370, -"artist": "EarthCrusher", -"secret": false, -"lobby": true -}, -{ -"url": "https://s.put.re/vrN9ATH7.mp3", -"title": "Spaceman's Dilemmia", -"duration": 2230, -"artist": "Carmen Miranda", -"secret": false, -"lobby": true -}, -{ -"url": "https://s.put.re/QgemNJPJ.mp3", -"title": "Banned from Argo", -"duration": 3200, -"artist": "Leslie Fish", -"secret": false, -"lobby": true -} -] \ No newline at end of file From 0a885609b96783a9a46e234515772488f2949c87 Mon Sep 17 00:00:00 2001 From: Andromeda-K22 Date: Sat, 24 Aug 2019 01:58:46 -0400 Subject: [PATCH 17/18] config update --- config/example/jukebox.txt | 93 ++++++++++++++++++++++++++------------ 1 file changed, 63 insertions(+), 30 deletions(-) diff --git a/config/example/jukebox.txt b/config/example/jukebox.txt index 08ae86b3988..291181c209d 100644 --- a/config/example/jukebox.txt +++ b/config/example/jukebox.txt @@ -1,30 +1,63 @@ -#Jukebox configuration file -#Sound file | Song Title | <0 = normal or 1 = secret> - -# Normal songs -sound/music/jukebox/SongAboutHares.ogg | A Song About Hares | 0 -sound/music/jukebox/BelowTheAsteroids.ogg | Below The Asteroids | 0 -sound/ambience/ambispace.ogg | Beyond | 0 -sound/music/clouds.s3m | Clouds of Fire | 0 -sound/music/title2.ogg | D`Bert | 0 -sound/ambience/song_game.ogg | D`Fort | 0 -sound/music/jukebox/DuckTalesMoon.mid | Duck Tales - Moon | 0 -sound/music/space.ogg | Endless Space | 0 -sound/music/main.ogg | Floating | 0 -sound/music/jukebox/Fly_Me_To_The_Moon.ogg | Fly Me To The Moon | 0 -sound/music/jukebox/Cantina.ogg | Mad About Me | 0 -sound/music/jukebox/MinorTurbulenceFull.ogg | Minor Turbulence | 0 -sound/music/jukebox/OdeToGreed.ogg | Ode to Greed | 0 -sound/misc/TestLoop1.ogg | Part A | 0 -sound/music/jukebox/Ransacked.ogg | Ransacked | 0 -sound/music/jukebox/russianrapdisco.ogg | Russkiy rep Diskoteka | 0 -sound/music/title1.ogg | Scratch | 0 -sound/music/space_oddity.ogg | Space Oddity | 0 -sound/music/THUNDERDOME.ogg | Thunderdome | 0 -sound/music/traitor.ogg | Trai`Tor | 0 -sound/music/jukebox/WelcomeToJurassicPark.mid | Welcome To Jurassic Park | 0 - -# Secret songs! -sound/music/jukebox/bandit_radio.ogg | Bandit Radio | 1 -sound/music/space_asshole.ogg | Space Asshole | 1 -sound/music/THUNDERDOME.ogg | THUNDERDOME | 1 +##DELETE THIS LINE AND SAVE FILE AS jukebox.json## +[ +{ +"url": "https://s.put.re/bkZYkYwX.mp3", +"title": "Flip-Flap (Title One)", +"duration": 1500, +"artist": "X-CEED", +"secret": false, +"lobby": true, +"jukebox": false, +"genre": "Jazz" +}, +{ +"url": "https://s.put.re/EzLP21Mp.mp3", +"title": "Robocop Theme (Title Two)", +"duration": 1180, +"artist": "Cboyardee", +"secret": false, +"lobby": true, +"jukebox": false, +"genre": "Electronic" +}, +{ +"url": "https://s.put.re/uDpZrL1L.mp3", +"title": "Tin Tin on the Moon (Remix)", +"duration": 2320, +"artist": "Jeroen Tel (Remixed by Cuboos)", +"secret": false, +"lobby": true, +"jukebox": true, +"genre": "Electronic" +}, +{ +"url": "https://s.put.re/nNXTd9ko.mp3", +"title": "Phoron Will Make Us Rich", +"duration": 1370, +"artist": "Earthcrusher", +"secret": false, +"lobby": true, +"jukebox": true, +"genre": "Electronic" +}, +{ +"url": "https://s.put.re/vrN9ATH7.mp3", +"title": "Spaceman's Dilemmia", +"duration": 2230, +"artist": "Carmen Miranda", +"secret": false, +"lobby": true, +"jukebox": true, +"genre": "Folk" +}, +{ +"url": "https://s.put.re/QgemNJPJ.mp3", +"title": "Banned from Argo", +"duration": 3200, +"artist": "Leslie Fish", +"secret": false, +"lobby": true, +"jukebox": true, +"genre": "Folk" +} +] From b87e2722adf04eabff2aa157328599f52b493328 Mon Sep 17 00:00:00 2001 From: Andromeda-K22 Date: Sat, 24 Aug 2019 02:01:36 -0400 Subject: [PATCH 18/18] Attempt at including proper json file --- config/example/jukebox.json | 62 +++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 config/example/jukebox.json diff --git a/config/example/jukebox.json b/config/example/jukebox.json new file mode 100644 index 00000000000..5845b2b1078 --- /dev/null +++ b/config/example/jukebox.json @@ -0,0 +1,62 @@ +[ +{ +"url": "https://s.put.re/bkZYkYwX.mp3", +"title": "Flip-Flap (Title One)", +"duration": 1500, +"artist": "X-CEED", +"secret": false, +"lobby": true, +"jukebox": false, +"genre": "Jazz" +}, +{ +"url": "https://s.put.re/EzLP21Mp.mp3", +"title": "Robocop Theme (Title Two)", +"duration": 1180, +"artist": "Cboyardee", +"secret": false, +"lobby": true, +"jukebox": false, +"genre": "Electronic" +}, +{ +"url": "https://s.put.re/uDpZrL1L.mp3", +"title": "Tin Tin on the Moon (Remix)", +"duration": 2320, +"artist": "Jeroen Tel (Remixed by Cuboos)", +"secret": false, +"lobby": true, +"jukebox": true, +"genre": "Electronic" +}, +{ +"url": "https://s.put.re/nNXTd9ko.mp3", +"title": "Phoron Will Make Us Rich", +"duration": 1370, +"artist": "Earthcrusher", +"secret": false, +"lobby": true, +"jukebox": true, +"genre": "Electronic" +}, +{ +"url": "https://s.put.re/vrN9ATH7.mp3", +"title": "Spaceman's Dilemmia", +"duration": 2230, +"artist": "Carmen Miranda", +"secret": false, +"lobby": true, +"jukebox": true, +"genre": "Folk" +}, +{ +"url": "https://s.put.re/QgemNJPJ.mp3", +"title": "Banned from Argo", +"duration": 3200, +"artist": "Leslie Fish", +"secret": false, +"lobby": true, +"jukebox": true, +"genre": "Folk" +} +] \ No newline at end of file