205 lines
12 KiB
Plaintext
205 lines
12 KiB
Plaintext
/datum/industry
|
|
var/name = "Industry"
|
|
var/list/tokens = list()
|
|
|
|
var/list/title_templates = list("The brand new %product_name% by %company_name% will revolutionize %industry%", \
|
|
"%jobs% rejoice as %product_name% hits shelves", \
|
|
"Does %product_name% threaten to reorganize the %industrial% status quo?", \
|
|
"%company_name% headed toward corporate renaissance with %product_name%")
|
|
|
|
var/list/title_templates_neutral = list("%product_name%: as if nothing happened", \
|
|
"Nothing new but the name: %product_name% not quite exciting %jobs%", \
|
|
"Same old %company_name%, same old product", \
|
|
"%product_name% underwhelms, but sells")
|
|
|
|
var/list/title_templates_bad = list("%product_name% shaping up to be the disappointment of the century", \
|
|
"Recipe for disaster: %company_name% releases %product_name%", \
|
|
"Atrocious quality - %jobs% boycott %product_name%", \
|
|
"%product_name%: Inside the worst product launch in recent history")
|
|
|
|
var/list/title_templates_ooc = list("%company_name% is looking to enter the %industry% playing field with %product_name%", \
|
|
"%company_name% broadens spectrum, %product_name% is their latest and greatest")
|
|
var/list/subtitle_templates = list( "%author% investigates whether or not you should invest!", \
|
|
"%outlet%'s very own %author% takes it to the magnifying glass", \
|
|
"%outlet% lets you know if you should use it", \
|
|
"Read our top tips for investors", \
|
|
"%author% wants you to know if it's a safe bet to buy")
|
|
|
|
/datum/industry/proc/generateProductName(var/company_name)
|
|
return
|
|
|
|
/datum/industry/proc/generateInCharacterProductArticle(var/product_name, var/datum/stock/S)
|
|
var/datum/article/A = new
|
|
var/list/add_tokens = list("company_name" = S.name, "product_name" = product_name, "outlet" = A.outlet, "author" = A.author)
|
|
A.about = S
|
|
A.opinion = rand(-1, 1)
|
|
|
|
A.subtitle = A.detokenize(pick(subtitle_templates), tokens, add_tokens)
|
|
var/article = {"%company_name% %expand_influence% %industry%. [ucfirst(product_name)] %hit_shelves% %this_time% "}
|
|
if (A.opinion > 0)
|
|
A.headline = A.detokenize(pick(title_templates), tokens, add_tokens)
|
|
article += "but %positive_outcome%, %signifying% the %resounding% %success% the product is. The %stock_market% is %excited% over this %development%, and %stockholder% optimism is expected to %rise% as well as the stock value. Our advice: %buy%."
|
|
else if (A.opinion == 0)
|
|
A.headline = A.detokenize(pick(title_templates_neutral), tokens, add_tokens)
|
|
article += "but %neutral_outcome%. For the average %stockholder%, no significant change on the market will be apparent over this %development%. Our advice is to continue investing as if this product was never released."
|
|
else
|
|
A.headline = A.detokenize(pick(title_templates_bad), tokens, add_tokens)
|
|
article += "but %negative_outcome%. Following this %complete% %failure%, %stockholder% optimism and stock value are projected to %dip%. Our advice: %sell%."
|
|
A.article = A.detokenize(article, tokens, add_tokens)
|
|
return A
|
|
|
|
/datum/industry/proc/detokenize(var/str)
|
|
for (var/T in tokens)
|
|
str = replacetext(str, "%[T]%", pick(tokens[T]))
|
|
return str
|
|
|
|
/datum/industry/agriculture
|
|
name = "Agriculture"
|
|
tokens = list( \
|
|
"industry" = list("agriculture", "farming", "botany", "horticulture", "hydroponics"), \
|
|
"industrial" = list("agricultural", "horticultural", "botanical"), \
|
|
"jobs" = list("farmers", "agricultural experts", "botanists", "assistant gardeners")
|
|
)
|
|
title_templates = list( "The brand new %product_name% by %company_name% will revolutionize %industry%", \
|
|
"%jobs% rejoice as %product_name% hits shelves", \
|
|
"Does %product name% threaten to reorganize the %industrial% status quo?", \
|
|
"Took it for a field trip: our first %sneak_peek% of %product_name%.", \
|
|
"Reaping the fruits of %product_name% - %sneak_peek% by %author%", \
|
|
"Cultivating a new %industrial% future with %product_name%", \
|
|
"%company_name% grows and thrives: %product_name% now on the farmer's market", \
|
|
"It's almost harvest season: %product_name% promises to ease your life", \
|
|
"Become the best on the farmer's market with %product_name%", \
|
|
"%product_name%: a gene-modified reimagination of an age-old classic")
|
|
|
|
title_templates_ooc = list( "%company_name% is looking to enter the %industry% playing field with %product_name%", \
|
|
"A questionable decision: %product_name% grown on the soil of %company_name%", \
|
|
"%company_name% broadens spectrum, %product_name% is their latest and greatest", \
|
|
"Will %company_name% grow on %industrial% wasteland? Owners of %product_name% may decide", \
|
|
"%company_name% looking to reap profits off the %industrial% sector with %product_name%")
|
|
|
|
/datum/industry/agriculture/generateProductName(var/company_name)
|
|
var/list/products = list("water tank", "cattle prod", "scythe", "plough", "sickle", "cultivator", "loy", "spade", "hoe", "daisy grubber", "cotton gin")
|
|
var/list/prefix = list("[company_name]'s ", "the [company_name] ", "the fully automatic ", "the full-duplex ", "the semi-automatic ", "the drone-mounted ", "the industry-leading ", "the world-class ")
|
|
var/list/suffix = list(" of farming", " multiplex", " +[rand(1,15)]", " [consonant()][rand(1000, 9999)]", " hybrid", " maximus", " extreme")
|
|
return "[pick(prefix)][pick(products)][pick(suffix)]"
|
|
|
|
|
|
|
|
/datum/industry/it
|
|
name = "Information Technology"
|
|
tokens = list( \
|
|
"industry" = list("information technology", "computing", "computer industry"), \
|
|
"industrial" = list("information technological", "computing", "computer industrial"), \
|
|
"jobs" = list("coders", "electricians", "engineers", "programmers", "devops experts", "developers")
|
|
)
|
|
|
|
/datum/industry/it/proc/latin_number(n)
|
|
if (n < 20 || !(n % 10))
|
|
switch(n)
|
|
if (0) return "Nihil"
|
|
if (1) return "Unus"
|
|
if (2) return "Duo"
|
|
if (3) return "Tres"
|
|
if (4) return "Quattour"
|
|
if (5) return "Quinque"
|
|
if (6) return "Sex"
|
|
if (7) return "Septem"
|
|
if (8) return "Octo"
|
|
if (9) return "Novem"
|
|
if (10) return "Decim"
|
|
if (11) return "Undecim"
|
|
if (12) return "Duodecim"
|
|
if (13) return "Tredecim"
|
|
if (14) return "Quattourdecim"
|
|
if (15) return "Quindecim"
|
|
if (16) return "Sedecim"
|
|
if (17) return "Septdecim"
|
|
if (18) return "Duodeviginti"
|
|
if (19) return "Undeviginti"
|
|
if (20) return "Viginti"
|
|
if (30) return "Triginta"
|
|
if (40) return "Quadriginta"
|
|
if (50) return "Quinquaginta"
|
|
if (60) return "Sexaginta"
|
|
if (70) return "Septuaginta"
|
|
if (80) return "Octoginta"
|
|
if (90) return "Nonaginta"
|
|
else
|
|
return "[latin_number(n - (n % 10))] [lowertext(latin_number(n % 10))]"
|
|
|
|
/datum/industry/it/generateProductName(var/company_name)
|
|
var/list/products = list("generator", "laptop", "keyboard", "memory card", "display", "operating system", "processor", "graphics card", "nanobots", "power supply", "pAI", "mech", "capacitor", "cell")
|
|
var/list/prefix = list("the [company_name] ", "the high performance ", "the mobile ", "the portable ", "the professional ", "the extreme ", "the incredible ", "the blazing fast ", "the bleeding edge ", "the bluespace-powered ", null)
|
|
var/L = pick(consonant(), "Seed ", "Radiant ", "Robust ", "Pentathon ", "Athlete ", "Phantom ", "Semper Fi ")
|
|
var/N = rand(0,99)
|
|
var/prefix2 = "[L][N][prob(5) ? " " + latin_number(N) : null]"
|
|
return "[pick(prefix)][prefix2] [pick(products)]"
|
|
|
|
/datum/industry/communications
|
|
name = "Communications"
|
|
tokens = list( \
|
|
"industry" = list("telecommunications", "telecomms"), \
|
|
"industrial" = list("telecommunicational"), \
|
|
"jobs" = list("electrical engineers", "microengineers", "developers")
|
|
)
|
|
|
|
/datum/industry/communications/generateProductName(var/company_name)
|
|
var/list/products = list("mobile phone", "PDA", "tablet computer", "newscaster", "social network")
|
|
var/list/prefix = list("the [company_name] ", "the high performance ", "the mobile ", "the portable ", "the professional ", "the extreme ", "the incredible ", "the blazing fast ", "the bleeding edge ", null)
|
|
var/L = pick("[lowertext(consonant())]Phone ", "Universe ", "Xperience ", "Next ", "Engin Y ", "Cyborg ", "[consonant()]")
|
|
var/N = rand(1,99)
|
|
var/prefix2 = "[L][N][prob(25) ? pick(" Tiny", " Mini", " Micro", " Slim", " Water", " Air", " Fire", " Earth", " Nano", " Pico", " Femto", " Planck") : null]"
|
|
return "[pick(prefix)][prefix2] [pick(products)]"
|
|
|
|
/datum/industry/health
|
|
name = "Medicine"
|
|
tokens = list( \
|
|
"industry" = list("medicine"), \
|
|
"industrial" = list("medicinal"), \
|
|
"jobs" = list("medical doctors", "nurses", "paramedics", "psychologists", "psychiatrists", "chemists")
|
|
)
|
|
|
|
/datum/industry/health/generateProductName(var/company_name)
|
|
var/list/prefix = list("amino", "nucleo", "nitro", "panto", "meth", "eth", "as", "algo", "coca", "hero", "lotsu", "opiod", "morph", "trinitro", "prop", "but", "acet", "acyclo", "lansop", "dyclo", "hydro", "oxycod", "vicod", "cannabi", "cryo", "dex", "chloro")
|
|
var/list/suffix = list("phen", "pirin", "pyrine", "ane", "amphetamine", "prazoline", "ine", "yl", "amine", "aminophen", "one", "ide", "phenate", "anol", "toulene", "glycerine", "vir", "tol", "trinic", "oxide")
|
|
var/list/uses = list("antidepressant", "analgesic", "anesthetic", "antiretroviral", "antiviral", "antibiotic", "cough drop", "depressant", "hangover cure", "homeopathic", "fertility drug", "hypnotic", "narcotic", "laxative", "multivitamin", "patch", "purgative", "relaxant", "steroid", "sleeping pill", "suppository", "tranquilizer")
|
|
return "[pick(prefix)][pick(suffix)], the [pick(uses)]"
|
|
|
|
/datum/industry/consumer
|
|
name = "Consumer"
|
|
tokens = list( \
|
|
"industry" = list("shops", "stores"), \
|
|
"industrial" = list("consumer industrial"), \
|
|
"jobs" = list("shopkeepers", "assistants", "manual daytime hygiene engineers", "janitors", "chefs", "cooks")
|
|
)
|
|
|
|
/datum/industry/consumer/generateProductName(var/company)
|
|
var/list/meat = list("chicken", "lizard", "corgi", "monkey", "goat", "fly", "xenomorph", "human", "walrus", "wendigo", "bear", "clown", "turkey", "pork", "carp", "crab", "mimic", "mystery")
|
|
var/list/qualifier = list("synthetic", "organic", "bio", "diet", "sugar-free", "paleolithic", "homeopathic", "recycled", "reclaimed", "vat-grown")
|
|
return "the [pick(qualifier)] [pick(meat)] meat product line"
|
|
|
|
/datum/industry/mining
|
|
name = "Mining"
|
|
tokens = list( \
|
|
"industry" = list("mines", "large scale mining operations"), \
|
|
"industrial" = list("resource acquisitional"), \
|
|
"jobs" = list("shaft miners", "drill operators", "mining foremen", "gibtonite handlers")
|
|
)
|
|
|
|
/datum/industry/mining/generateProductName(var/company)
|
|
var/list/equipment = list("drill", "pickaxe", "shovel", "jackhammer", "mini-pickaxe", "power hammer", "power gloves", "power armor", "hardsuit", "kinetic accelerator", "resonator", "oxygen tank", "emergency bike horn")
|
|
var/list/material = list("mauxite", "pharosium", "molitz", "adamantium", "mithril", "cobryl", "bohrum", "claretine", "viscerite", "syreline", "cerenkite", "plasmastone", "gold", "koshmarite", "phoron", "carbon dioxide")
|
|
return "the [pick(material)] [pick(equipment)]"
|
|
|
|
/datum/industry/defense
|
|
name = "Defense"
|
|
tokens = list ( \
|
|
"industry" = list("defense", "warfare", "security", "law enforcement"), \
|
|
"industrial" = list("defense"), \
|
|
"jobs" = list("security officers", "government officials", "soldiers", "weapons engineers")
|
|
)
|
|
|
|
/datum/industry/defense/generateProductName(var/company)
|
|
var/list/equipment = list("energy gun", "laser gun", "machine gun", "grenade", "stun baton", "artillery", "bomb", "attack drone", "missile", "chem sprayer")
|
|
var/list/material = list("bluespace", "stealth", "heat-seeking", "crime-seeking", "wide-range", "bioterror", "auto-reloading", "smart", "sentient", "rapid-fire", "species-targeting", "gibtonite", "mass-market", "perpetual-motion", "nuclear", "fission", "fusion")
|
|
return "the [pick(material)] [pick(equipment)]" |