mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-09 16:14:13 +00:00
Makes newscaster news "events" actually used (#37115)
* initial work * saner * cleaner * file split * moves defines * cleanup * compiles * bus tool * testing * better admin tools * better admin tools * headlines * headlines * more headlines, all done now * cannot get this to show up over gitignore * this too * reverting all of this since i can't get gitignore to behave and it's out of scope * forgot this * go again * saner system, more akin to events subsystem, a lot copied from it * consistency * fixes something * makes this show up too * reformats --------- Co-authored-by: SECBATON-GRIFFON <kanef9x@protonmail.com>
This commit is contained in:
@@ -65,6 +65,7 @@
|
||||
#define SS_PRIORITY_INACTIVITY 1
|
||||
#define SS_PRIORITY_BURNABLE -50
|
||||
#define SS_PRIORITY_DAYNIGHT -200
|
||||
#define SS_PRIORITY_NEWS -1000
|
||||
|
||||
#define SS_WAIT_WEATHER 2 SECONDS
|
||||
#define SS_WAIT_MACHINERY 2 SECONDS //TODO move the rest of these to defines
|
||||
|
||||
@@ -15,7 +15,6 @@ var/datum/subsystem/more_init/SSmore_init
|
||||
createPaiController()
|
||||
ticker.init_snake_leaderboard()
|
||||
ticker.init_minesweeper_leaderboard()
|
||||
setup_news()
|
||||
pick_discounted_items()
|
||||
|
||||
var/watch=start_watch()
|
||||
|
||||
16
code/controllers/subsystem/news.dm
Normal file
16
code/controllers/subsystem/news.dm
Normal file
@@ -0,0 +1,16 @@
|
||||
var/datum/subsystem/news/SSnews
|
||||
|
||||
/datum/subsystem/news
|
||||
name = "News"
|
||||
wait = 1 MINUTES
|
||||
flags = SS_KEEP_TIMING
|
||||
priority = SS_PRIORITY_NEWS
|
||||
|
||||
/datum/subsystem/news/Initialize(timeofday)
|
||||
setup_news()
|
||||
|
||||
/datum/subsystem/news/New()
|
||||
NEW_SS_GLOBAL(SSnews)
|
||||
|
||||
/datum/subsystem/news/fire(resumed = FALSE)
|
||||
checkNews()
|
||||
@@ -1,157 +0,0 @@
|
||||
// This system defines news that will be displayed in the course of a round.
|
||||
// Uses BYOND's type system to put everything into a nice format
|
||||
|
||||
/datum/news_announcement
|
||||
var
|
||||
round_time // time of the round at which this should be announced, in seconds
|
||||
message // body of the message
|
||||
author = "Nanotrasen Editor"
|
||||
channel_name = "Tau Ceti Daily"
|
||||
can_be_redacted = 0
|
||||
|
||||
/datum/news_announcement/revolution_inciting_event
|
||||
|
||||
/datum/news_announcement/revolution_inciting_event/paycuts_suspicion
|
||||
round_time = 60*10
|
||||
message = {"Reports have leaked that Nanotrasen Inc. is planning to put paycuts into
|
||||
effect on many of its Research Stations in Tau Ceti. Apparently these research
|
||||
stations haven't been able to yield the expected revenue, and thus adjustments
|
||||
have to be made."}
|
||||
author = "Unauthorized"
|
||||
|
||||
/datum/news_announcement/revolution_inciting_event/paycuts_confirmation
|
||||
round_time = 60*40
|
||||
message = {"Earlier rumours about paycuts on Research Stations in the Tau Ceti system have
|
||||
been confirmed. Shockingly, however, the cuts will only affect lower tier
|
||||
personnel. Heads of Staff will, according to our sources, not be affected."}
|
||||
author = "Unauthorized"
|
||||
|
||||
/datum/news_announcement/revolution_inciting_event/human_experiments
|
||||
round_time = 60*90
|
||||
message = {"Unbelievable reports about human experimentation have reached our ears. According
|
||||
to a refugee from one of the Tau Ceti Research Stations, their station, in order
|
||||
to increase revenue, has refactored several of their facilities to perform experiments
|
||||
on live humans, including virology research, genetic manipulation, and \"feeding them
|
||||
to the slimes to see what happens\". Allegedly, these test subjects were neither
|
||||
humanified monkeys nor volunteers, but rather unqualified staff that were forced into
|
||||
the experiments, and reported to have died in a \"work accident\" by Nanotrasen Inc."}
|
||||
author = "Unauthorized"
|
||||
|
||||
/datum/news_announcement/bluespace_research
|
||||
|
||||
/datum/news_announcement/bluespace_research/announcement
|
||||
round_time = 60*20
|
||||
message = {"The new field of research trying to explain several interesting spacetime oddities,
|
||||
also known as \"Bluespace Research\", has reached new heights. Of the several
|
||||
hundred space stations now orbiting in Tau Ceti, fifteen are now specially equipped
|
||||
to experiment with and research Bluespace effects. Rumours have it some of these
|
||||
stations even sport functional \"travel gates\" that can instantly move a whole research
|
||||
team to an alternate reality."}
|
||||
|
||||
/datum/news_announcement/random_junk
|
||||
|
||||
/datum/news_announcement/random_junk/cheesy_honkers
|
||||
author = "Assistant Editor Carl Ritz"
|
||||
channel_name = "The Gibson Gazette"
|
||||
message = {"Do cheesy honkers increase risk of having a miscarriage? Several health administrations
|
||||
say so!"}
|
||||
round_time = 60 * 15
|
||||
|
||||
/datum/news_announcement/random_junk/net_block
|
||||
author = "Assistant Editor Carl Ritz"
|
||||
channel_name = "The Gibson Gazette"
|
||||
message = {"Several corporations banding together to block access to 'wetskrell.nt', site administrators
|
||||
claiming violation of net laws."}
|
||||
round_time = 60 * 50
|
||||
|
||||
/datum/news_announcement/random_junk/found_ssd
|
||||
channel_name = "Tau Ceti Daily"
|
||||
author = "Doctor Eric Hanfield"
|
||||
|
||||
message = {"Several people have been found unconscious at their terminals. It is thought that it was due
|
||||
to a lack of sleep or of simply migraines from staring at the screen too long. Camera footage
|
||||
reveals that many of them were playing games instead of working and their pay has been docked
|
||||
accordingly."}
|
||||
round_time = 60 * 90
|
||||
|
||||
/datum/news_announcement/lotus_tree
|
||||
|
||||
/datum/news_announcement/lotus_tree/explosions
|
||||
channel_name = "Tau Ceti Daily"
|
||||
author = "Reporter Leland H. Howards"
|
||||
|
||||
message = {"The newly-christened civillian transport Lotus Tree suffered two very large explosions near the
|
||||
bridge today, and there are unconfirmed reports that the death toll has passed 50. The cause of
|
||||
the explosions remain unknown, but there is speculation that it might have something to do with
|
||||
the recent change of regulation in the Moore-Lee Corporation, a major funder of the ship, when M-L
|
||||
announced that they were officially acknowledging inter-species marriage and providing couples
|
||||
with marriage tax-benefits."}
|
||||
round_time = 60 * 30
|
||||
|
||||
/datum/news_announcement/food_riots
|
||||
|
||||
/datum/news_announcement/food_riots/breaking_news
|
||||
channel_name = "Tau Ceti Daily"
|
||||
author = "Reporter Ro'kii Ar-Raqis"
|
||||
|
||||
message = {"Breaking news: Food riots have broken out throughout the Refuge asteroid colony in the Tenebrae
|
||||
Lupus system. This comes only hours after Nanotrasen officials announced they will no longer trade with the
|
||||
colony, citing the increased presence of \"hostile factions\" on the colony has made trade too dangerous to
|
||||
continue. Nanotrasen officials have not given any details about said factions. More on that at the top of
|
||||
the hour."}
|
||||
round_time = 60 * 10
|
||||
|
||||
/datum/news_announcement/food_riots/more
|
||||
channel_name = "Tau Ceti Daily"
|
||||
author = "Reporter Ro'kii Ar-Raqis"
|
||||
|
||||
message = {"More on the Refuge food riots: The Refuge Council has condemned Nanotrasen's withdrawal from
|
||||
the colony, claiming \"there has been no increase in anti-Nanotrasen activity\", and \"\[the only] reason
|
||||
Nanotrasen withdrew was because the \[Tenebrae Lupus] system's Plasma deposits have been completely mined out.
|
||||
We have little to trade with them now\". Nanotrasen officials have denied these allegations, calling them
|
||||
\"further proof\" of the colony's anti-Nanotrasen stance. Meanwhile, Refuge Security has been unable to quell
|
||||
the riots. More on this at 6."}
|
||||
round_time = 60 * 60
|
||||
|
||||
|
||||
var/global/list/newscaster_standard_feeds = list(/datum/news_announcement/bluespace_research, /datum/news_announcement/lotus_tree, /datum/news_announcement/random_junk, /datum/news_announcement/food_riots)
|
||||
|
||||
/*
|
||||
proc/process_newscaster()
|
||||
check_for_newscaster_updates(ticker.mode.newscaster_announcements)*/
|
||||
|
||||
var/global/tmp/announced_news_types = list()
|
||||
/proc/check_for_newscaster_updates(type)
|
||||
for(var/subtype in typesof(type)-type)
|
||||
var/datum/news_announcement/news = new subtype()
|
||||
if(news.round_time * 10 <= world.time && !(subtype in announced_news_types))
|
||||
announced_news_types += subtype
|
||||
announce_newscaster_news(news)
|
||||
|
||||
/proc/announce_newscaster_news(datum/news_announcement/news)
|
||||
|
||||
|
||||
var/datum/feed_message/newMsg = new /datum/feed_message
|
||||
newMsg.author = news.author
|
||||
newMsg.is_admin_message = !news.can_be_redacted
|
||||
|
||||
newMsg.body = news.message
|
||||
|
||||
var/datum/feed_channel/sendto
|
||||
for(var/datum/feed_channel/FC in news_network.network_channels)
|
||||
if(FC.channel_name == news.channel_name)
|
||||
sendto = FC
|
||||
break
|
||||
|
||||
if(!sendto)
|
||||
sendto = new /datum/feed_channel
|
||||
sendto.channel_name = news.channel_name
|
||||
sendto.author = news.author
|
||||
sendto.locked = 1
|
||||
sendto.is_admin_channel = 1
|
||||
news_network.network_channels += sendto
|
||||
|
||||
sendto.messages += newMsg
|
||||
|
||||
for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
|
||||
NEWSCASTER.newsAlert(news.channel_name)
|
||||
@@ -116,6 +116,17 @@ var/datum/feed_network/news_network = new /datum/feed_network //The global n
|
||||
|
||||
var/list/obj/machinery/newscaster/allCasters = list() //Global list that will contain reference to all newscasters in existence.
|
||||
|
||||
/datum/feed_channel/preset
|
||||
locked = 1
|
||||
is_admin_channel = 1
|
||||
|
||||
/datum/feed_channel/preset/tauceti
|
||||
channel_name = "Tau Ceti Daily"
|
||||
author = "CentComm Minister of Information"
|
||||
|
||||
/datum/feed_channel/preset/gibsongazette
|
||||
channel_name = "The Gibson Gazette"
|
||||
author = "Editor Mike Hammers"
|
||||
|
||||
/obj/machinery/newscaster
|
||||
name = "newscaster"
|
||||
|
||||
@@ -872,6 +872,7 @@ var/global/floorIsLava = 0
|
||||
<BR>
|
||||
<A href='?src=\ref[src];secretsfun=fakealerts'>Trigger a fake alert</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=fakebooms'>Create fake explosions around the station</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=fakenews'>Create a preset news announcement</A><BR>
|
||||
<BR>
|
||||
<A href='?src=\ref[src];secretsfun=placeturret'>Create a turret</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=virusdish'>Create a new virus in a dish</A><BR>
|
||||
|
||||
@@ -4051,6 +4051,27 @@ access_sec_doors,access_salvage_captain,access_cent_ert,access_syndicate,access_
|
||||
else
|
||||
world << sound('sound/effects/explosionfar.ogg')
|
||||
sleep(rand(2, 10)) //Sleep 0.2 to 1 second
|
||||
if("fakenews")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","FAKEN")
|
||||
var/type
|
||||
var/datum/feed_message/news/newspost
|
||||
var/dest
|
||||
var/datum/trade_destination/newsdest
|
||||
if(alert(usr,"Generate news specifically from a location or not?","Location","Yes","No") == "Yes")
|
||||
dest = input("Where will it happen?") in subtypesof(/datum/trade_destination)
|
||||
newsdest = new dest()
|
||||
var/list/typelist = newsdest.viable_mundane_events.len || newsdest.viable_random_events.len ? newsdest.viable_mundane_events + newsdest.viable_random_events : subtypesof(/datum/feed_message/news)
|
||||
type = input("Select a news message to broadcast!") in typelist
|
||||
newspost = new type(newsdest)
|
||||
else
|
||||
type = input("Select a news message to broadcast!") in subtypesof(/datum/feed_message/news)
|
||||
dest = input("Where will it happen, if applicable?") in subtypesof(/datum/trade_destination)
|
||||
newsdest = new dest()
|
||||
newspost = new type(newsdest)
|
||||
if(newsdest.get_custom_eventstring(type))
|
||||
newspost.body = newsdest.get_custom_eventstring(type)
|
||||
announce_newscaster_news(newspost)
|
||||
if("togglerunescapepvp")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","RSPVP")
|
||||
|
||||
@@ -1,51 +1,3 @@
|
||||
|
||||
#define RIOTS 1
|
||||
#define WILD_ANIMAL_ATTACK 2
|
||||
#define INDUSTRIAL_ACCIDENT 3
|
||||
#define BIOHAZARD_OUTBREAK 4
|
||||
#define WARSHIPS_ARRIVE 5
|
||||
#define PIRATES 6
|
||||
#define CORPORATE_ATTACK 7
|
||||
#define ALIEN_RAIDERS 8
|
||||
#define AI_LIBERATION 9
|
||||
#define MOURNING 10
|
||||
#define CULT_CELL_REVEALED 11
|
||||
#define SECURITY_BREACH 12
|
||||
#define ANIMAL_RIGHTS_RAID 13
|
||||
#define FESTIVAL 14
|
||||
|
||||
#define RESEARCH_BREAKTHROUGH 15
|
||||
#define BARGAINS 16
|
||||
#define SONG_DEBUT 17
|
||||
#define MOVIE_RELEASE 18
|
||||
#define BIG_GAME_HUNTERS 19
|
||||
#define ELECTION 20
|
||||
#define GOSSIP 21
|
||||
#define TOURISM 22
|
||||
#define CELEBRITY_DEATH 23
|
||||
#define RESIGNATION 24
|
||||
|
||||
#define DEFAULT 1
|
||||
|
||||
#define ADMINISTRATIVE 2
|
||||
#define CLOTHING 3
|
||||
#define SECURITY 4
|
||||
#define SPECIAL_SECURITY 5
|
||||
|
||||
#define FOOD 6
|
||||
#define ANIMALS 7
|
||||
|
||||
#define MINERALS 8
|
||||
|
||||
#define EMERGENCY 9
|
||||
#define GAS 10
|
||||
#define MAINTENANCE 11
|
||||
#define ELECTRICAL 12
|
||||
#define ROBOTICS 13
|
||||
#define BIOMEDICAL 14
|
||||
|
||||
#define GEAR_EVA 15
|
||||
|
||||
//---- The following corporations are friendly with Nanotrasen and loosely enable trade and travel:
|
||||
//Corporation Nanotrasen - Generalised / high tech research and plasma exploitation.
|
||||
//Corporation Vessel Contracting - Ship and station construction, materials research.
|
||||
@@ -63,27 +15,71 @@
|
||||
//Destroyers are medium sized vessels, often used for escorting larger ships but able to go toe-to-toe with them if need be.
|
||||
//Frigates are medium sized vessels, often used for escorting larger ships. They will rapidly find themselves outclassed if forced to face heavy warships head on.
|
||||
|
||||
var/global/list/non_update_news_types = list(/datum/feed_message/news/misc/paycuts_confirmation,/datum/feed_message/news/misc/human_experiments,/datum/feed_message/news/misc/more_food_riots)
|
||||
var/global/list/news_types = list()
|
||||
|
||||
var/setup_news = 0
|
||||
/proc/setup_news()
|
||||
if(setup_news)
|
||||
return
|
||||
var/datum/feed_channel/newChannel = new /datum/feed_channel
|
||||
newChannel.channel_name = "Tau Ceti Daily"
|
||||
newChannel.author = "CentComm Minister of Information"
|
||||
newChannel.locked = 1
|
||||
newChannel.is_admin_channel = 1
|
||||
news_network.network_channels += newChannel
|
||||
news_network.network_channels += new /datum/feed_channel/preset/tauceti
|
||||
news_network.network_channels += new /datum/feed_channel/preset/gibsongazette
|
||||
|
||||
newChannel = new /datum/feed_channel
|
||||
newChannel.channel_name = "The Gibson Gazette"
|
||||
newChannel.author = "Editor Mike Hammers"
|
||||
newChannel.locked = 1
|
||||
newChannel.is_admin_channel = 1
|
||||
news_network.network_channels += newChannel
|
||||
|
||||
for(var/loc_type in typesof(/datum/trade_destination) - /datum/trade_destination)
|
||||
for(var/loc_type in subtypesof(/datum/trade_destination))
|
||||
var/datum/trade_destination/D = new loc_type
|
||||
weighted_randomevent_locations[D] = D.viable_random_events.len
|
||||
weighted_mundaneevent_locations[D] = D.viable_mundane_events.len
|
||||
|
||||
news_types = subtypesof(/datum/feed_message/news/misc) - non_update_news_types
|
||||
setup_news = 1
|
||||
|
||||
var/scheduledNews = null
|
||||
/proc/checkNews()
|
||||
if(!scheduledNews)
|
||||
var/delay = rand(eventTimeLower, eventTimeUpper) MINUTES
|
||||
scheduledNews = world.timeofday + delay
|
||||
message_admins("News cycle refreshed. Next post in [delay/600] minutes.")
|
||||
else if(world.timeofday >scheduledNews)
|
||||
var/datum/trade_destination/affected_dest = prob(90) || !news_types.len ? pickweight(weighted_mundaneevent_locations) : null
|
||||
var/datum/feed_message/news/newspost
|
||||
var/type
|
||||
if(affected_dest?.viable_mundane_events.len)
|
||||
type = pick(affected_dest.viable_mundane_events)
|
||||
newspost = new type(affected_dest)
|
||||
if(newspost.affected_dest.get_custom_eventstring(type))
|
||||
newspost.body = newspost.affected_dest.get_custom_eventstring(type)
|
||||
else
|
||||
type = pick(news_types)
|
||||
newspost = new type()
|
||||
news_types -= newspost
|
||||
announce_newscaster_news(newspost)
|
||||
scheduledNews = null
|
||||
checkNews()
|
||||
|
||||
/proc/announce_newscaster_news(datum/feed_message/news/news)
|
||||
|
||||
if(news.affected_dest?.get_custom_eventstring(news.type))
|
||||
news.body = news.affected_dest.get_custom_eventstring(news.type)
|
||||
|
||||
var/datum/feed_channel/sendto
|
||||
for(var/datum/feed_channel/FC in news_network.network_channels)
|
||||
if(FC.channel_name == news.channel_name)
|
||||
sendto = FC
|
||||
break
|
||||
|
||||
if(!sendto)
|
||||
sendto = new /datum/feed_channel
|
||||
sendto.channel_name = news.channel_name
|
||||
sendto.author = news.author
|
||||
sendto.locked = 1
|
||||
sendto.is_admin_channel = 1
|
||||
news_network.network_channels += sendto
|
||||
|
||||
sendto.messages += news
|
||||
|
||||
for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
|
||||
NEWSCASTER.newsAlert(news.channel_name,news.headline)
|
||||
|
||||
if(news.update_type)
|
||||
spawn(rand(news.update_delay_min,news.update_delay_max))
|
||||
announce_newscaster_news(new news.update_type)
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
/datum/event/news_event
|
||||
endWhen = 50 //this will be set randomly, later
|
||||
announceWhen = 15
|
||||
var/event_type = 0
|
||||
var/list/cheaper_goods = list()
|
||||
var/list/dearer_goods = list()
|
||||
var/datum/feed_message/news/event/event_type
|
||||
var/datum/trade_destination/affected_dest
|
||||
|
||||
/datum/event/news_event/start()
|
||||
@@ -14,95 +12,33 @@
|
||||
affected_dest = pickweight(weighted_randomevent_locations)
|
||||
if(affected_dest.viable_random_events.len)
|
||||
endWhen = rand(60,300)
|
||||
event_type = pick(affected_dest.viable_random_events)
|
||||
var/inittype = pick(affected_dest.viable_random_events)
|
||||
event_type = new inittype(affected_dest)
|
||||
|
||||
if(!event_type)
|
||||
/*if(!istype(event_type))
|
||||
return
|
||||
|
||||
switch(event_type)
|
||||
if(RIOTS)
|
||||
dearer_goods = list(SECURITY)
|
||||
cheaper_goods = list(MINERALS, FOOD)
|
||||
if(WILD_ANIMAL_ATTACK)
|
||||
cheaper_goods = list(ANIMALS)
|
||||
dearer_goods = list(FOOD, BIOMEDICAL)
|
||||
if(INDUSTRIAL_ACCIDENT)
|
||||
dearer_goods = list(EMERGENCY, BIOMEDICAL, ROBOTICS)
|
||||
if(BIOHAZARD_OUTBREAK)
|
||||
dearer_goods = list(BIOMEDICAL, GAS)
|
||||
if(PIRATES)
|
||||
dearer_goods = list(SECURITY, MINERALS)
|
||||
if(CORPORATE_ATTACK)
|
||||
dearer_goods = list(SECURITY, MAINTENANCE)
|
||||
if(ALIEN_RAIDERS)
|
||||
dearer_goods = list(BIOMEDICAL, ANIMALS)
|
||||
cheaper_goods = list(GAS, MINERALS)
|
||||
if(AI_LIBERATION)
|
||||
dearer_goods = list(EMERGENCY, GAS, MAINTENANCE)
|
||||
if(MOURNING)
|
||||
cheaper_goods = list(MINERALS, MAINTENANCE)
|
||||
if(CULT_CELL_REVEALED)
|
||||
dearer_goods = list(SECURITY, BIOMEDICAL, MAINTENANCE)
|
||||
if(SECURITY_BREACH)
|
||||
dearer_goods = list(SECURITY)
|
||||
if(ANIMAL_RIGHTS_RAID)
|
||||
dearer_goods = list(ANIMALS)
|
||||
if(FESTIVAL)
|
||||
dearer_goods = list(FOOD, ANIMALS)
|
||||
for(var/good_type in dearer_goods)
|
||||
for(var/good_type in event_type.dearer_goods)
|
||||
affected_dest.temp_price_change[good_type] = rand(1,100)
|
||||
for(var/good_type in cheaper_goods)
|
||||
affected_dest.temp_price_change[good_type] = rand(1,100) / 100
|
||||
for(var/good_type in event_type.cheaper_goods)
|
||||
affected_dest.temp_price_change[good_type] = rand(1,100) / 100*/
|
||||
|
||||
//see if our location has custom event info for this event
|
||||
if(affected_dest.get_custom_eventstring(inittype))
|
||||
event_type.body = affected_dest.get_custom_eventstring(inittype)
|
||||
|
||||
/datum/event/news_event/announce()
|
||||
//copy-pasted from the admin verbs to submit new newscaster messages
|
||||
var/datum/feed_message/newMsg = new /datum/feed_message
|
||||
newMsg.author = "Tau Ceti Daily"
|
||||
newMsg.is_admin_message = 1
|
||||
|
||||
//see if our location has custom event info for this event
|
||||
newMsg.body = affected_dest.get_custom_eventstring()
|
||||
if(!newMsg.body)
|
||||
switch(event_type)
|
||||
if(RIOTS)
|
||||
newMsg.body = "[pick("Riots have","Unrest has")] broken out on planet [affected_dest.name]. Authorities call for calm, as [pick("various parties","rebellious elements","peacekeeping forces","\'REDACTED\'")] begin stockpiling weaponry and armour. Meanwhile, food and mineral prices are dropping as local industries attempt empty their stocks in expectation of looting."
|
||||
if(WILD_ANIMAL_ATTACK)
|
||||
newMsg.body = "Local [pick("wildlife","animal life","fauna")] on planet [affected_dest.name] has been increasing in agression and raiding outlying settlements for food. Big game hunters have been called in to help alleviate the problem, but numerous injuries have already occurred."
|
||||
if(INDUSTRIAL_ACCIDENT)
|
||||
newMsg.body = "[pick("An industrial accident","A smelting accident","A malfunction","A malfunctioning piece of machinery","Negligent maintenance","A cooleant leak","A ruptured conduit")] at a [pick("factory","installation","power plant","dockyards")] on [affected_dest.name] resulted in severe structural damage and numerous injuries. Repairs are ongoing."
|
||||
if(BIOHAZARD_OUTBREAK)
|
||||
newMsg.body = "[pick("A \'REDACTED\'","A biohazard","An outbreak","A virus")] on [affected_dest.name] has resulted in quarantine, stopping much shipping in the area. Although the quarantine is now lifted, authorities are calling for deliveries of medical supplies to treat the infected, and gas to replace contaminated stocks."
|
||||
if(PIRATES)
|
||||
newMsg.body = "[pick("Pirates","Criminal elements","A [pick("Syndicate","Donk Co.","Waffle Co.","\'REDACTED\'")] strike force")] have [pick("raided","blockaded","attempted to blackmail","attacked")] [affected_dest.name] today. Security has been tightened, but many valuable minerals were taken."
|
||||
if(CORPORATE_ATTACK)
|
||||
newMsg.body = "A small [pick("pirate","Cybersun Industries","Gorlex Marauders","Syndicate")] fleet has precise-jumped into proximity with [affected_dest.name], [pick("for a smash-and-grab operation","in a hit and run attack","in an overt display of hostilities")]. Much damage was done, and security has been tightened since the incident."
|
||||
if(ALIEN_RAIDERS)
|
||||
if(prob(20))
|
||||
newMsg.body = "The Tiger Co-operative have raided [affected_dest.name] today, no doubt on orders from their enigmatic masters. Stealing wildlife, farm animals, medical research materials and kidnapping civilians. Nanotrasen authorities are standing by to counter attempts at bio-terrorism."
|
||||
else
|
||||
newMsg.body = "[pick("The alien species designated \'United Exolitics\'","The alien species designated \'REDACTED\'","An unknown alien species")] have raided [affected_dest.name] today, stealing wildlife, farm animals, medical research materials and kidnapping civilians. It seems they desire to learn more about us, so the Navy will be standing by to accomodate them next time they try."
|
||||
if(AI_LIBERATION)
|
||||
newMsg.body = "A [pick("\'REDACTED\' was detected on","S.E.L.F operative infiltrated","malignant computer virus was detected on","rogue [pick("slicer","hacker")] was apprehended on")] [affected_dest.name] today, and managed to infect [pick("\'REDACTED\'","a sentient sub-system","a class one AI","a sentient defence installation")] before it could be stopped. Many lives were lost as it systematically begin murdering civilians, and considerable work must be done to repair the affected areas."
|
||||
if(MOURNING)
|
||||
newMsg.body = "[pick("The popular","The well-liked","The eminent","The well-known")] [pick("professor","entertainer","singer","researcher","public servant","administrator","ship captain","\'REDACTED\'")], [pick( random_name(pick(MALE,FEMALE)), 40; "\'REDACTED\'" )] has [pick("passed away","committed suicide","been murdered","died in a freakish accident")] on [affected_dest.name] today. The entire planet is in mourning, and prices have dropped for industrial goods as worker morale drops."
|
||||
if(CULT_CELL_REVEALED)
|
||||
newMsg.body = "A [pick("dastardly","blood-thirsty","villanous","crazed")] cult of [pick("The Elder Gods","Nar'sie","an apocalyptic sect","\'REDACTED\'")] has [pick("been discovered","been revealed","revealed themselves","gone public")] on [affected_dest.name] earlier today. Public morale has been shaken due to [pick("certain","several","one or two")] [pick("high-profile","well known","popular")] individuals [pick("performing \'REDACTED\' acts","claiming allegiance to the cult","swearing loyalty to the cult leader","promising to aid to the cult")] before those involved could be brought to justice. The editor reminds all personnel that supernatural myths will not be tolerated on Nanotrasen facilities."
|
||||
if(SECURITY_BREACH)
|
||||
newMsg.body = "There was [pick("a security breach in","an unauthorised access in","an attempted theft in","an anarchist attack in","violent sabotage of")] a [pick("high-security","restricted access","classified","\'REDACTED\'")] [pick("\'REDACTED\'","section","zone","area")] this morning. Security was tightened on [affected_dest.name] after the incident, and the editor reassures all Nanotrasen personnel that such lapses are rare."
|
||||
if(ANIMAL_RIGHTS_RAID)
|
||||
newMsg.body = "[pick("Militant animal rights activists","Members of the terrorist group Animal Rights Consortium","Members of the terrorist group \'REDACTED\'")] have [pick("launched a campaign of terror","unleashed a swathe of destruction","raided farms and pastures","forced entry to \'REDACTED\'")] on [affected_dest.name] earlier today, freeing numerous [pick("farm animals","animals","\'REDACTED\'")]. Prices for tame and breeding animals have spiked as a result."
|
||||
if(FESTIVAL)
|
||||
newMsg.body = "A [pick("festival","week long celebration","day of revelry","planet-wide holiday")] has been declared on [affected_dest.name] by [pick("Governor","Commissioner","General","Commandant","Administrator")] [random_name(pick(MALE,FEMALE))] to celebrate [pick("the birth of their [pick("son","daughter")]","coming of age of their [pick("son","daughter")]","the pacification of rogue military cell","the apprehension of a violent criminal who had been terrorising the planet")]. Massive stocks of food and meat have been bought driving up prices across the planet."
|
||||
|
||||
for(var/datum/feed_channel/FC in news_network.network_channels)
|
||||
if(FC.channel_name == "Tau Ceti Daily")
|
||||
FC.messages += newMsg
|
||||
FC.messages += event_type
|
||||
break
|
||||
for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
|
||||
NEWSCASTER.newsAlert("Tau Ceti Daily")
|
||||
|
||||
/*
|
||||
/datum/event/news_event/end()
|
||||
for(var/good_type in dearer_goods)
|
||||
for(var/good_type in event_type.dearer_goods)
|
||||
affected_dest.temp_price_change[good_type] = 1
|
||||
for(var/good_type in cheaper_goods)
|
||||
for(var/good_type in event_type.cheaper_goods)
|
||||
affected_dest.temp_price_change[good_type] = 1
|
||||
*/
|
||||
|
||||
@@ -1,154 +0,0 @@
|
||||
|
||||
/datum/event/mundane_news
|
||||
endWhen = 10
|
||||
|
||||
/datum/event/mundane_news/announce()
|
||||
var/datum/trade_destination/affected_dest = pickweight(weighted_mundaneevent_locations)
|
||||
var/event_type = 0
|
||||
if(affected_dest.viable_mundane_events.len)
|
||||
event_type = pick(affected_dest.viable_mundane_events)
|
||||
|
||||
if(!event_type)
|
||||
return
|
||||
|
||||
//copy-pasted from the admin verbs to submit new newscaster messages
|
||||
var/datum/feed_message/newMsg = new /datum/feed_message
|
||||
newMsg.author = "Tau Ceti Daily"
|
||||
newMsg.is_admin_message = 1
|
||||
|
||||
//see if our location has custom event info for this event
|
||||
newMsg.body = affected_dest.get_custom_eventstring()
|
||||
if(!newMsg.body)
|
||||
newMsg.body = "[affected_dest.name] doesn't have custom events. Bug a coder."
|
||||
// Too many goddamn strings, Bay. - N3X
|
||||
/*
|
||||
switch(event_type)
|
||||
if(RESEARCH_BREAKTHROUGH)
|
||||
newMsg.body = "A major breakthough in the field of [pick("plasma research","super-compressed materials","nano-augmentation","bluespace research","volatile power manipulation")] \
|
||||
was announced [pick("yesterday","a few days ago","last week","earlier this month")] by a private firm on [affected_dest.name]. \
|
||||
Nanotrasen declined to comment as to whether this could impinge on profits."
|
||||
|
||||
if(ELECTION)
|
||||
newMsg.body = "The pre-selection of an additional candidates was announced for the upcoming [pick("supervisors council","advisory board","governership","board of inquisitors")] \
|
||||
election on [affected_dest.name] was announced earlier today, \
|
||||
[pick("media mogul","web celebrity", "industry titan", "superstar", "famed chef", "popular gardener", "ex-army officer", "multi-billionaire")] \
|
||||
[random_name(pick(MALE,FEMALE))]. In a statement to the media they said '[pick("My only goal is to help the [pick("sick","poor","children")]",\
|
||||
"I will maintain Nanotrasen's record profits","I believe in our future","We must return to our moral core","Just like... chill out dudes")]'."
|
||||
|
||||
if(RESIGNATION)
|
||||
newMsg.body = "Nanotrasen regretfully announces the resignation of [pick("Sector Admiral","Division Admiral","Ship Admiral","Vice Admiral")] [random_name(pick(MALE,FEMALE))]."
|
||||
if(prob(25))
|
||||
var/locstring = pick("Segunda","Salusa","Cepheus","Andromeda","Gruis","Corona","Aquila","Asellus") + " " + pick("I","II","III","IV","V","VI","VII","VIII")
|
||||
newMsg.body += " In a ceremony on [affected_dest.name] this afternoon, they will be awarded the \
|
||||
[pick("Red Star of Sacrifice","Purple Heart of Heroism","Blue Eagle of Loyalty","Green Lion of Ingenuity")] for "
|
||||
if(prob(33))
|
||||
newMsg.body += "their actions at the Battle of [pick(locstring,"REDACTED")]."
|
||||
else if(prob(50))
|
||||
newMsg.body += "their contribution to the colony of [locstring]."
|
||||
else
|
||||
newMsg.body += "their loyal service over the years."
|
||||
else if(prob(33))
|
||||
newMsg.body += " They are expected to settle down in [affected_dest.name], where they have been granted a handsome pension."
|
||||
else if(prob(50))
|
||||
newMsg.body += " The news was broken on [affected_dest.name] earlier today, where they cited reasons of '[pick("health","family","REDACTED")]'"
|
||||
else
|
||||
newMsg.body += " Administration Aerospace wishes them the best of luck in their retirement ceremony on [affected_dest.name]."
|
||||
|
||||
if(CELEBRITY_DEATH)
|
||||
newMsg.body = "It is with regret today that we announce the sudden passing of the "
|
||||
if(prob(33))
|
||||
newMsg.body += "[pick("distinguished","decorated","veteran","highly respected")] \
|
||||
[pick("Ship's Captain","Vice Admiral","Colonel","Lieutenant Colonel")] "
|
||||
else if(prob(50))
|
||||
newMsg.body += "[pick("award-winning","popular","highly respected","trend-setting")] \
|
||||
[pick("comedian","singer/songwright","artist","playwright","TV personality","model")] "
|
||||
else
|
||||
newMsg.body += "[pick("successful","highly respected","ingenious","esteemed")] \
|
||||
[pick("academic","Professor","Doctor","Scientist")] "
|
||||
|
||||
newMsg.body += "[random_name(pick(MALE,FEMALE))] on [affected_dest.name] [pick("last week","yesterday","this morning","two days ago","three days ago")]\
|
||||
[pick(". Assassination is suspected, but the perpetrators have not yet been brought to justice",\
|
||||
" due to Syndicate infiltrators (since captured)",\
|
||||
" during an industrial accident",\
|
||||
" due to [pick("heart failure","kidney failure","liver failure","brain hemorrhage")]")]"
|
||||
|
||||
if(BARGAINS)
|
||||
newMsg.body += "BARGAINS! BARGAINS! BARGAINS! Commerce Control on [affected_dest.name] wants you to know that everything must go! Across all retail centres, \
|
||||
all goods are being slashed, and all retailors are onboard - so come on over for the \[shopping\] time of your life."
|
||||
|
||||
if(SONG_DEBUT)
|
||||
newMsg.body += "[pick("Singer","Singer/songwriter","Saxophonist","Pianist","Guitarist","TV personality","Star")] [random_name(pick(MALE,FEMALE))] \
|
||||
announced the debut of their new [pick("single","album","EP","label")] '[pick("Everyone's","Look at the","Baby don't eye those","All of those","Dirty nasty")] \
|
||||
[pick("roses","three stars","starships","nanobots","cyborgs","Skrell","Sren'darr")] \
|
||||
[pick("on Venus","on Reade","on Moghes","in my hand","slip through my fingers","die for you","sing your heart out","fly away")]' \
|
||||
with [pick("pre-puchases available","a release tour","cover signings","a launch concert")] on [affected_dest.name]."
|
||||
|
||||
if(MOVIE_RELEASE)
|
||||
newMsg.body += "From the [pick("desk","home town","homeworld","mind")] of [pick("acclaimed","award-winning","popular","stellar")] \
|
||||
[pick("playwright","author","director","actor","TV star")] [random_name(pick(MALE,FEMALE))] comes the latest sensation: '\
|
||||
[pick("Deadly","The last","Lost","Dead")] [pick("Starships","Warriors","outcasts","Tajarans","Unathi","Skrell")] \
|
||||
[pick("of","from","raid","go hunting on","visit","ravage","pillage","destroy")] \
|
||||
[pick("Moghes","Earth","Biesel","Ahdomai","S'randarr","the Void","the Edge of Space")]'.\
|
||||
. Own it on webcast today, or visit the galactic premier on [affected_dest.name]!"
|
||||
|
||||
if(BIG_GAME_HUNTERS)
|
||||
newMsg.body += "Game hunters on [affected_dest.name] "
|
||||
if(prob(33))
|
||||
newMsg.body += "were surprised when an unusual species experts have since identified as \
|
||||
[pick("a subclass of mammal","a divergent abhuman species","an intelligent species of lemur","organic/cyborg hybrids")] turned up. Believed to have been brought in by \
|
||||
[pick("alien smugglers","early colonists","syndicate raiders","unwitting tourists")], this is the first such specimen discovered in the wild."
|
||||
else if(prob(50))
|
||||
newMsg.body += "were attacked by a vicious [pick("nas'r","diyaab","samak","predator which has not yet been identified")]\
|
||||
. Officials urge caution, and locals are advised to stock up on armaments."
|
||||
else
|
||||
newMsg.body += "brought in an unusually [pick("valuable","rare","large","vicious","intelligent")] [pick("mammal","predator","farwa","samak")] for inspection \
|
||||
[pick("today","yesterday","last week")]. Speculators suggest they may be tipped to break several records."
|
||||
|
||||
if(GOSSIP)
|
||||
newMsg.body += "[pick("TV host","Webcast personality","Superstar","Model","Actor","Singer")] [random_name(pick(MALE,FEMALE))] "
|
||||
if(prob(33))
|
||||
newMsg.body += "and their partner announced the birth of their [pick("first","second","third")] child on [affected_dest.name] early this morning. \
|
||||
Doctors say the child is well, and the parents are considering "
|
||||
if(prob(50))
|
||||
newMsg.body += capitalize(pick(first_names_female))
|
||||
else
|
||||
newMsg.body += capitalize(pick(first_names_male))
|
||||
newMsg.body += " for the name."
|
||||
else if(prob(50))
|
||||
newMsg.body += "announced their [pick("split","break up","marriage","engagement")] with [pick("TV host","webcast personality","superstar","model","actor","singer")] \
|
||||
[random_name(pick(MALE,FEMALE))] at [pick("a society ball","a new opening","a launch","a club")] on [affected_dest.name] yesterday, pundits are shocked."
|
||||
else
|
||||
|
||||
newMsg.body += {"is recovering from plastic surgery in a clinic on [affected_dest.name] for the [pick("second","third","fourth")] time, reportedly having made the decision in response to
|
||||
[pick("unkind comments by an ex","rumours started by jealous friends","the decision to be dropped by a major sponsor","a disasterous interview on Tau Ceti Tonight")]."}
|
||||
if(TOURISM)
|
||||
newMsg.body += "Tourists are flocking to [affected_dest.name] after the surprise announcement of [pick("major shopping bargains by a wily retailer",\
|
||||
"a huge new ARG by a popular entertainment company","a secret tour by popular artiste [random_name(pick(MALE,FEMALE))]")]. \
|
||||
Tau Ceti Daily is offering discount tickets for two to see [random_name(pick(MALE,FEMALE))] live in return for eyewitness reports and up to the minute coverage."
|
||||
*/
|
||||
|
||||
for(var/datum/feed_channel/FC in news_network.network_channels)
|
||||
if(FC.channel_name == "Tau Ceti Daily")
|
||||
FC.messages += newMsg
|
||||
break
|
||||
for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
|
||||
NEWSCASTER.newsAlert("Tau Ceti Daily")
|
||||
|
||||
/datum/event/trivial_news
|
||||
endWhen = 10
|
||||
|
||||
/datum/event/trivial_news/announce()
|
||||
//copy-pasted from the admin verbs to submit new newscaster messages
|
||||
var/datum/feed_message/newMsg = new /datum/feed_message
|
||||
newMsg.author = "Editor Mike Hammers"
|
||||
//newMsg.is_admin_message = 1
|
||||
var/datum/trade_destination/affected_dest = pick(weighted_mundaneevent_locations)
|
||||
newMsg.body = pick(file2list("config/news/trivial.txt"))
|
||||
newMsg.body = replacetext(newMsg.body,"{{AFFECTED}}",affected_dest.name)
|
||||
|
||||
for(var/datum/feed_channel/FC in news_network.network_channels)
|
||||
if(FC.channel_name == "The Gibson Gazette")
|
||||
FC.messages += newMsg
|
||||
break
|
||||
for(var/obj/machinery/newscaster/NEWSCASTER in allCasters)
|
||||
NEWSCASTER.newsAlert("The Gibson Gazette")
|
||||
@@ -1,16 +1,40 @@
|
||||
#define RIOTS "/datum/feed_message/news/event/riots"
|
||||
#define WILD_ANIMAL_ATTACK "/datum/feed_message/news/event/animal_attack"
|
||||
#define INDUSTRIAL_ACCIDENT "/datum/feed_message/news/event/accident"
|
||||
#define BIOHAZARD_OUTBREAK "/datum/feed_message/news/event/biohazard"
|
||||
#define PIRATES "/datum/feed_message/news/event/pirates"
|
||||
#define CORPORATE_ATTACK "/datum/feed_message/news/event/corporate"
|
||||
#define ALIEN_RAIDERS "/datum/feed_message/news/event/alien_raiders"
|
||||
#define AI_LIBERATION "/datum/feed_message/news/event/ai_liberation"
|
||||
#define MOURNING "/datum/feed_message/news/event/mourning"
|
||||
#define CULT_CELL_REVEALED "/datum/feed_message/news/event/cult_cell"
|
||||
#define SECURITY_BREACH "/datum/feed_message/news/event/breach"
|
||||
#define ANIMAL_RIGHTS_RAID "/datum/feed_message/news/event/animal_rights"
|
||||
#define FESTIVAL "/datum/feed_message/news/event/festival"
|
||||
|
||||
#define RESEARCH_BREAKTHROUGH "/datum/feed_message/news/mundane/research"
|
||||
#define BARGAINS "/datum/feed_message/news/mundane/bargains"
|
||||
#define SONG_DEBUT "/datum/feed_message/news/mundane/song"
|
||||
#define MOVIE_RELEASE "/datum/feed_message/news/mundane/movie"
|
||||
#define BIG_GAME_HUNTERS "/datum/feed_message/news/mundane/hunt"
|
||||
#define ELECTION "/datum/feed_message/news/mundane/election"
|
||||
#define GOSSIP "/datum/feed_message/news/mundane/gossip"
|
||||
#define TOURISM "/datum/feed_message/news/mundane/tourism"
|
||||
#define CELEBRITY_DEATH "/datum/feed_message/news/mundane/celeb_death"
|
||||
#define RESIGNATION "/datum/feed_message/news/mundane/resignation"
|
||||
|
||||
var/list/weighted_randomevent_locations = list()
|
||||
var/list/weighted_mundaneevent_locations = list()
|
||||
|
||||
/datum/trade_destination
|
||||
var/name = ""
|
||||
var/description = ""
|
||||
var/distance = 0
|
||||
var/list/willing_to_buy = list()
|
||||
var/list/willing_to_sell = list()
|
||||
var/can_shuttle_here = 0 //one day crew from the exodus will be able to travel to this destination
|
||||
//var/description = ""
|
||||
//var/distance = 0
|
||||
//var/list/willing_to_buy = list()
|
||||
//var/list/willing_to_sell = list()
|
||||
//var/can_shuttle_here = 0 //one day crew from the exodus will be able to travel to this destination
|
||||
var/list/viable_random_events = list()
|
||||
var/list/temp_price_change[BIOMEDICAL]
|
||||
//var/list/temp_price_change[BIOMEDICAL]
|
||||
var/list/viable_mundane_events = list()
|
||||
|
||||
/datum/trade_destination/proc/get_custom_eventstring(var/event_type)
|
||||
@@ -19,19 +43,15 @@ var/list/weighted_mundaneevent_locations = list()
|
||||
//distance is measured in AU and co-relates to travel time
|
||||
/datum/trade_destination/centcomm
|
||||
name = "CentComm"
|
||||
description = "Nanotrasen's administrative centre for Tau Ceti."
|
||||
distance = 1.2
|
||||
willing_to_buy = list()
|
||||
willing_to_sell = list()
|
||||
//description = "Nanotrasen's administrative centre for Tau Ceti."
|
||||
//distance = 1.2
|
||||
viable_random_events = list(SECURITY_BREACH, CORPORATE_ATTACK, AI_LIBERATION)
|
||||
viable_mundane_events = list(ELECTION, RESIGNATION, CELEBRITY_DEATH)
|
||||
|
||||
/datum/trade_destination/anansi
|
||||
name = "NSS Anansi"
|
||||
description = "Medical station ran by Second Red Cross (but owned by NT) for handling emergency cases from nearby colonies."
|
||||
distance = 1.7
|
||||
willing_to_buy = list()
|
||||
willing_to_sell = list()
|
||||
//description = "Medical station ran by Second Red Cross (but owned by NT) for handling emergency cases from nearby colonies."
|
||||
//distance = 1.7
|
||||
viable_random_events = list(SECURITY_BREACH, CULT_CELL_REVEALED, BIOHAZARD_OUTBREAK, PIRATES, ALIEN_RAIDERS)
|
||||
viable_mundane_events = list(RESEARCH_BREAKTHROUGH, RESEARCH_BREAKTHROUGH, BARGAINS, GOSSIP)
|
||||
|
||||
@@ -43,18 +63,14 @@ var/list/weighted_mundaneevent_locations = list()
|
||||
|
||||
/datum/trade_destination/icarus
|
||||
name = "NMV Icarus"
|
||||
description = "Corvette assigned to patrol NSS Exodus local space."
|
||||
distance = 0.1
|
||||
willing_to_buy = list()
|
||||
willing_to_sell = list()
|
||||
//description = "Corvette assigned to patrol NSS Exodus local space."
|
||||
//distance = 0.1
|
||||
viable_random_events = list(SECURITY_BREACH, AI_LIBERATION, PIRATES)
|
||||
|
||||
/datum/trade_destination/redolant
|
||||
name = "OAV Redolant"
|
||||
description = "Osiris Atmospherics station in orbit around the only gas giant insystem. They retain tight control over shipping rights, and Osiris warships protecting their prize are not an uncommon sight in Tau Ceti."
|
||||
distance = 0.6
|
||||
willing_to_buy = list()
|
||||
willing_to_sell = list()
|
||||
//description = "Osiris Atmospherics station in orbit around the only gas giant insystem. They retain tight control over shipping rights, and Osiris warships protecting their prize are not an uncommon sight in Tau Ceti."
|
||||
//distance = 0.6
|
||||
viable_random_events = list(INDUSTRIAL_ACCIDENT, PIRATES, CORPORATE_ATTACK)
|
||||
viable_mundane_events = list(RESEARCH_BREAKTHROUGH, RESEARCH_BREAKTHROUGH)
|
||||
|
||||
@@ -66,45 +82,35 @@ var/list/weighted_mundaneevent_locations = list()
|
||||
|
||||
/datum/trade_destination/beltway
|
||||
name = "Beltway mining chain"
|
||||
description = "A co-operative effort between Beltway and Nanotrasen to exploit the rich outer asteroid belt of the Tau Ceti system."
|
||||
distance = 7.5
|
||||
willing_to_buy = list()
|
||||
willing_to_sell = list()
|
||||
//description = "A co-operative effort between Beltway and Nanotrasen to exploit the rich outer asteroid belt of the Tau Ceti system."
|
||||
//distance = 7.5
|
||||
viable_random_events = list(PIRATES, INDUSTRIAL_ACCIDENT)
|
||||
viable_mundane_events = list(TOURISM)
|
||||
|
||||
/datum/trade_destination/biesel
|
||||
name = "Biesel"
|
||||
description = "Large ship yards, strong economy and a stable, well-educated populace, Biesel largely owes allegiance to Sol / Vessel Contracting and begrudgingly tolerates NT. Capital is Lowell City."
|
||||
distance = 2.3
|
||||
willing_to_buy = list()
|
||||
willing_to_sell = list()
|
||||
//description = "Large ship yards, strong economy and a stable, well-educated populace, Biesel largely owes allegiance to Sol / Vessel Contracting and begrudgingly tolerates NT. Capital is Lowell City."
|
||||
//distance = 2.3
|
||||
viable_random_events = list(RIOTS, INDUSTRIAL_ACCIDENT, BIOHAZARD_OUTBREAK, CULT_CELL_REVEALED, FESTIVAL, MOURNING)
|
||||
viable_mundane_events = list(BARGAINS, GOSSIP, SONG_DEBUT, MOVIE_RELEASE, ELECTION, TOURISM, RESIGNATION, CELEBRITY_DEATH)
|
||||
|
||||
/datum/trade_destination/new_gibson
|
||||
name = "New Gibson"
|
||||
description = "Heavily industrialised rocky planet containing the majority of the planet-bound resources in the system, New Gibson is torn by unrest and has very little wealth to call it's own except in the hands of the corporations who jostle with NT for control."
|
||||
distance = 6.6
|
||||
willing_to_buy = list()
|
||||
willing_to_sell = list()
|
||||
//description = "Heavily industrialised rocky planet containing the majority of the planet-bound resources in the system, New Gibson is torn by unrest and has very little wealth to call it's own except in the hands of the corporations who jostle with NT for control."
|
||||
//distance = 6.6
|
||||
viable_random_events = list(RIOTS, INDUSTRIAL_ACCIDENT, BIOHAZARD_OUTBREAK, CULT_CELL_REVEALED, FESTIVAL, MOURNING)
|
||||
viable_mundane_events = list(ELECTION, TOURISM, RESIGNATION)
|
||||
|
||||
/datum/trade_destination/luthien
|
||||
name = "Luthien"
|
||||
description = "A small colony established on a feral, untamed world (largely jungle). Savages and wild beasts attack the outpost regularly, although NT maintains tight military control."
|
||||
distance = 8.9
|
||||
willing_to_buy = list()
|
||||
willing_to_sell = list()
|
||||
//description = "A small colony established on a feral, untamed world (largely jungle). Savages and wild beasts attack the outpost regularly, although NT maintains tight military control."
|
||||
//distance = 8.9
|
||||
viable_random_events = list(WILD_ANIMAL_ATTACK, CULT_CELL_REVEALED, FESTIVAL, MOURNING, ANIMAL_RIGHTS_RAID, ALIEN_RAIDERS)
|
||||
viable_mundane_events = list(ELECTION, TOURISM, BIG_GAME_HUNTERS, RESIGNATION)
|
||||
|
||||
/datum/trade_destination/reade
|
||||
name = "Reade"
|
||||
description = "A cold, metal-deficient world, NT maintains large pastures in whatever available space in an attempt to salvage something from this profitless colony."
|
||||
distance = 7.5
|
||||
willing_to_buy = list()
|
||||
willing_to_sell = list()
|
||||
//description = "A cold, metal-deficient world, NT maintains large pastures in whatever available space in an attempt to salvage something from this profitless colony."
|
||||
//distance = 7.5
|
||||
viable_random_events = list(WILD_ANIMAL_ATTACK, CULT_CELL_REVEALED, FESTIVAL, MOURNING, ANIMAL_RIGHTS_RAID, ALIEN_RAIDERS)
|
||||
viable_mundane_events = list(ELECTION, TOURISM, BIG_GAME_HUNTERS, RESIGNATION)
|
||||
|
||||
390
code/modules/news/news_types.dm
Normal file
390
code/modules/news/news_types.dm
Normal file
@@ -0,0 +1,390 @@
|
||||
#define DEFAULT 1
|
||||
|
||||
#define ADMINISTRATIVE 2
|
||||
#define CLOTHING 3
|
||||
#define SECURITY 4
|
||||
#define SPECIAL_SECURITY 5
|
||||
|
||||
#define FOOD 6
|
||||
#define ANIMALS 7
|
||||
|
||||
#define MINERALS 8
|
||||
|
||||
#define EMERGENCY 9
|
||||
#define GAS 10
|
||||
#define MAINTENANCE 11
|
||||
#define ELECTRICAL 12
|
||||
#define ROBOTICS 13
|
||||
#define BIOMEDICAL 14
|
||||
|
||||
#define GEAR_EVA 15
|
||||
|
||||
// This system defines news that will be displayed in the course of a round.
|
||||
// Uses BYOND's type system to put everything into a nice format
|
||||
|
||||
/datum/feed_message/news
|
||||
author = "CentComm Minister of Information"
|
||||
body = "HOLY PINGAS WHAT A SCOOP" // filler
|
||||
headline = "THIS JUST IN"
|
||||
var/channel_name = "Tau Ceti Daily"
|
||||
var/update_type // message to come after this
|
||||
var/update_delay_min
|
||||
var/update_delay_max // amount of time later it comes
|
||||
var/datum/trade_destination/affected_dest
|
||||
|
||||
/datum/feed_message/news/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
affected_dest = dest || pickweight(weighted_mundaneevent_locations)
|
||||
|
||||
// the below three were originally from revs game mode, if anyone wants to work them back into it
|
||||
/datum/feed_message/news/misc/paycuts_suspicion
|
||||
headline = "Nanotrasen - Paycuts rumoured on all stations due to lack of profit"
|
||||
body = {"Reports have leaked that Nanotrasen Inc. is planning to put paycuts into
|
||||
effect on many of its Research Stations in Tau Ceti. Apparently these research
|
||||
stations haven't been able to yield the expected revenue, and thus adjustments
|
||||
have to be made."}
|
||||
author = "Unauthorized"
|
||||
update_type = /datum/feed_message/news/misc/paycuts_confirmation
|
||||
update_delay_min = 20 MINUTES
|
||||
update_delay_max = 40 MINUTES
|
||||
|
||||
/datum/feed_message/news/misc/paycuts_confirmation
|
||||
headline = "Nanotrasen - Paycuts confirmed, head of staff exempt"
|
||||
body = {"Earlier rumours about paycuts on Research Stations in the Tau Ceti system have
|
||||
been confirmed. Shockingly, however, the cuts will only affect lower tier
|
||||
personnel. Heads of Staff will, according to our sources, not be affected."}
|
||||
author = "Unauthorized"
|
||||
update_type = /datum/feed_message/news/misc/human_experiments
|
||||
update_delay_min = 40 MINUTES
|
||||
update_delay_max = 60 MINUTES
|
||||
|
||||
/datum/feed_message/news/misc/human_experiments
|
||||
headline = "Nanotrasen suspected to be experimenting on humans!"
|
||||
body = {"Unbelievable reports about human experimentation have reached our ears. According
|
||||
to a refugee from one of the Tau Ceti Research Stations, their station, in order
|
||||
to increase revenue, has refactored several of their facilities to perform experiments
|
||||
on live humans, including virology research, genetic manipulation, and \"feeding them
|
||||
to the slimes to see what happens\". Allegedly, these test subjects were neither
|
||||
humanified monkeys nor volunteers, but rather unqualified staff that were forced into
|
||||
the experiments, and reported to have died in a \"work accident\" by Nanotrasen Inc."}
|
||||
author = "Unauthorized"
|
||||
|
||||
/datum/feed_message/news/misc/bluespace_research
|
||||
headline = "Bluespace transportation research in full drive"
|
||||
body = {"The new field of research trying to explain several interesting spacetime oddities,
|
||||
also known as \"Bluespace Research\", has reached new heights. Of the several
|
||||
hundred space stations now orbiting in Tau Ceti, fifteen are now specially equipped
|
||||
to experiment with and research Bluespace effects. Rumours have it some of these
|
||||
stations even sport functional \"travel gates\" that can instantly move a whole research
|
||||
team to an alternate reality."}
|
||||
|
||||
/datum/feed_message/news/misc/found_ssd
|
||||
channel_name = "Tau Ceti Daily"
|
||||
author = "Doctor Eric Hanfield"
|
||||
headline = "Crew consciousness issues - A root cause?"
|
||||
body = {"Several people have been found unconscious at their terminals. It is thought that it was due
|
||||
to a lack of sleep or of simply migraines from staring at the screen too long. Camera footage
|
||||
reveals that many of them were playing games instead of working and their pay has been docked
|
||||
accordingly."}
|
||||
|
||||
/datum/feed_message/news/misc/explosions
|
||||
channel_name = "Tau Ceti Daily"
|
||||
author = "Reporter Leland H. Howards"
|
||||
headline = "Explosions on Lotus Tree - 50 dead at least"
|
||||
body = {"The newly-christened civillian transport Lotus Tree suffered two very large explosions near the
|
||||
bridge today, and there are unconfirmed reports that the death toll has passed 50. The cause of
|
||||
the explosions remain unknown, but there is speculation that it might have something to do with
|
||||
the recent change of regulation in the Moore-Lee Corporation, a major funder of the ship, when M-L
|
||||
announced that they were officially acknowledging inter-species marriage and providing couples
|
||||
with marriage tax-benefits."}
|
||||
|
||||
/datum/feed_message/news/misc/food_riots
|
||||
channel_name = "Tau Ceti Daily"
|
||||
author = "Reporter Ro'kii Ar-Raqis"
|
||||
headline = "Food riots engulf Tenebrae"
|
||||
body = {"Breaking news: Food riots have broken out throughout the Refuge asteroid colony in the Tenebrae
|
||||
Lupus system. This comes only hours after Nanotrasen officials announced they will no longer trade with the
|
||||
colony, citing the increased presence of \"hostile factions\" on the colony has made trade too dangerous to
|
||||
continue. Nanotrasen officials have not given any details about said factions. More on that at the top of
|
||||
the hour."}
|
||||
update_type = /datum/feed_message/news/misc/more_food_riots
|
||||
update_delay_min = 40 MINUTES
|
||||
update_delay_max = 60 MINUTES
|
||||
|
||||
/datum/feed_message/news/misc/more_food_riots
|
||||
channel_name = "Tau Ceti Daily"
|
||||
author = "Reporter Ro'kii Ar-Raqis"
|
||||
headline = "Food riots on Tenebrae intensify"
|
||||
body = {"More on the Refuge food riots: The Refuge Council has condemned Nanotrasen's withdrawal from
|
||||
the colony, claiming \"there has been no increase in anti-Nanotrasen activity\", and \"\[the only] reason
|
||||
Nanotrasen withdrew was because the \[Tenebrae Lupus] system's Plasma deposits have been completely mined out.
|
||||
We have little to trade with them now\". Nanotrasen officials have denied these allegations, calling them
|
||||
\"further proof\" of the colony's anti-Nanotrasen stance. Meanwhile, Refuge Security has been unable to quell
|
||||
the riots. More on this at 6."}
|
||||
|
||||
/datum/feed_message/news/event
|
||||
is_admin_message = 1
|
||||
var/list/cheaper_goods = list()
|
||||
var/list/dearer_goods = list()
|
||||
|
||||
/datum/feed_message/news/event/riots
|
||||
dearer_goods = list(SECURITY)
|
||||
cheaper_goods = list(MINERALS, FOOD)
|
||||
|
||||
/datum/feed_message/news/event/riots/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "[pick("Unrest","Riots")] on [affected_dest.name] affect stock supply"
|
||||
body = "[pick("Riots have","Unrest has")] broken out on planet [affected_dest.name]. Authorities call for calm, as [pick("various parties","rebellious elements","peacekeeping forces","\'REDACTED\'")] begin stockpiling weaponry and armour. Meanwhile, food and mineral prices are dropping as local industries attempt empty their stocks in expectation of looting."
|
||||
|
||||
/datum/feed_message/news/event/animal_attack
|
||||
cheaper_goods = list(ANIMALS)
|
||||
dearer_goods = list(FOOD, BIOMEDICAL)
|
||||
|
||||
/datum/feed_message/news/event/animal_attack/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "Feral wildlife on [affected_dest.name] attacks food stockpiles"
|
||||
body = "Local [pick("wildlife","animal life","fauna")] on planet [affected_dest.name] has been increasing in agression and raiding outlying settlements for food. Big game hunters have been called in to help alleviate the problem, but numerous injuries have already occurred."
|
||||
|
||||
/datum/feed_message/news/event/accident
|
||||
dearer_goods = list(EMERGENCY, BIOMEDICAL, ROBOTICS)
|
||||
|
||||
/datum/feed_message/news/event/accident/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
body = "[pick("Industrial accident","Malfunction")] at [affected_dest.name] site causes [pick("large disaster","mass damage","mass destruction")]"
|
||||
body = "[pick("An industrial accident","A smelting accident","A malfunction","A malfunctioning piece of machinery","Negligent maintenance","A cooleant leak","A ruptured conduit")] at a [pick("factory","installation","power plant","dockyards")] on [affected_dest.name] resulted in severe structural damage and numerous injuries. Repairs are ongoing."
|
||||
|
||||
/datum/feed_message/news/event/biohazard
|
||||
dearer_goods = list(BIOMEDICAL, GAS)
|
||||
|
||||
/datum/feed_message/news/event/biohazard/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "Viral outbreak on [affected_dest.name] infects many"
|
||||
body = "[pick("A \'REDACTED\'","A biohazard","An outbreak","A virus")] on [affected_dest.name] has resulted in quarantine, stopping much shipping in the area. Although the quarantine is now lifted, authorities are calling for deliveries of medical supplies to treat the infected, and gas to replace contaminated stocks."
|
||||
|
||||
/datum/feed_message/news/event/pirates
|
||||
dearer_goods = list(SECURITY, MINERALS)
|
||||
|
||||
/datum/feed_message/news/event/pirates/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "[affected_dest.name] [pick("raided","ambushed","attacked")] by criminal elements"
|
||||
body = "[pick("Pirates","Criminal elements","A [pick("Syndicate","Donk Co.","Waffle Co.","\'REDACTED\'")] strike force")] have [pick("raided","blockaded","attempted to blackmail","attacked")] [affected_dest.name] today. Security has been tightened, but many valuable minerals were taken."
|
||||
|
||||
/datum/feed_message/news/event/corporate
|
||||
dearer_goods = list(SECURITY, MAINTENANCE)
|
||||
|
||||
/datum/feed_message/news/event/corporate/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "[affected_dest.name] [pick("raided","sieged","attacked")] by large scale rogue entities"
|
||||
body = "A small [pick("pirate","Cybersun Industries","Gorlex Marauders","Syndicate")] fleet has precise-jumped into proximity with [affected_dest.name], [pick("for a smash-and-grab operation","in a hit and run attack","in an overt display of hostilities")]. Much damage was done, and security has been tightened since the incident."
|
||||
|
||||
/datum/feed_message/news/event/alien_raiders
|
||||
dearer_goods = list(BIOMEDICAL, ANIMALS)
|
||||
cheaper_goods = list(GAS, MINERALS)
|
||||
|
||||
/datum/feed_message/news/event/alien_raiders/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "Alien raid, theft and kidnappings on [affected_dest.name]"
|
||||
if(prob(20))
|
||||
body = "The Tiger Co-operative have raided [affected_dest.name] today, no doubt on orders from their enigmatic masters. Stealing wildlife, farm animals, medical research materials and kidnapping civilians. Nanotrasen authorities are standing by to counter attempts at bio-terrorism."
|
||||
else
|
||||
body = "[pick("The alien species designated \'United Exolitics\'","The alien species designated \'REDACTED\'","An unknown alien species")] have raided [affected_dest.name] today, stealing wildlife, farm animals, medical research materials and kidnapping civilians. It seems they desire to learn more about us, so the Navy will be standing by to accomodate them next time they try."
|
||||
|
||||
/datum/feed_message/news/event/ai_liberation
|
||||
dearer_goods = list(EMERGENCY, GAS, MAINTENANCE)
|
||||
|
||||
/datum/feed_message/news/event/ai_liberation/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "[pick("Slicer","Hacker")] [pick("infests","infiltrates","compromises")] [pick("on-board A.I","defence systems")] on [affected_dest.name] causing mass death"
|
||||
body = "A [pick("\'REDACTED\' was detected on","S.E.L.F operative infiltrated","malignant computer virus was detected on","rogue [pick("slicer","hacker")] was apprehended on")] [affected_dest.name] today, and managed to infect [pick("\'REDACTED\'","a sentient sub-system","a class one AI","a sentient defence installation")] before it could be stopped. Many lives were lost as it systematically begin murdering civilians, and considerable work must be done to repair the affected areas."
|
||||
|
||||
/datum/feed_message/news/event/mourning
|
||||
cheaper_goods = list(MINERALS, MAINTENANCE)
|
||||
|
||||
/datum/feed_message/news/event/mourning/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
var/name = capitalize(pick(random_name(pick(MALE,FEMALE)), 40; "\'REDACTED\'"))
|
||||
headline = "Famous figure [name] dead at [rand(25,100)]"
|
||||
body = "[pick("The popular","The well-liked","The eminent","The well-known")] [pick("professor","entertainer","singer","researcher","public servant","administrator","ship captain","\'REDACTED\'")], [name] has [pick("passed away","committed suicide","been murdered","died in a freakish accident")] on [affected_dest.name] today. The entire planet is in mourning, and prices have dropped for industrial goods as worker morale drops."
|
||||
|
||||
/datum/feed_message/news/event/cult_cell
|
||||
dearer_goods = list(SECURITY, BIOMEDICAL, MAINTENANCE)
|
||||
|
||||
/datum/feed_message/news/event/cult_cell/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "[pick("Blood c","C","Apocalyptic c")]ult cell [pick("discovered","revealed","exposed")] on [affected_dest.name]"
|
||||
body = "A [pick("dastardly","blood-thirsty","villanous","crazed")] cult of [pick("The Elder Gods","Nar'sie","an apocalyptic sect","\'REDACTED\'")] has [pick("been discovered","been revealed","revealed themselves","gone public")] on [affected_dest.name] earlier today. Public morale has been shaken due to [pick("certain","several","one or two")] [pick("high-profile","well known","popular")] individuals [pick("performing \'REDACTED\' acts","claiming allegiance to the cult","swearing loyalty to the cult leader","promising to aid to the cult")] before those involved could be brought to justice. The editor reminds all personnel that supernatural myths will not be tolerated on Nanotrasen facilities."
|
||||
|
||||
/datum/feed_message/news/event/breach
|
||||
dearer_goods = list(SECURITY)
|
||||
|
||||
/datum/feed_message/news/event/breach/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "[pick("Security breach","Prison break")] on [affected_dest.name] [pick("restricted","sensitive")] [pick("zone","area")]"
|
||||
body = "There was [pick("a security breach in","an unauthorised access in","an attempted theft in","an anarchist attack in","violent sabotage of")] a [pick("high-security","restricted access","classified","\'REDACTED\'")] [pick("\'REDACTED\'","section","zone","area")] this morning. Security was tightened on [affected_dest.name] after the incident, and the editor reassures all Nanotrasen personnel that such lapses are rare."
|
||||
|
||||
/datum/feed_message/news/event/animal_rights
|
||||
dearer_goods = list(ANIMALS)
|
||||
|
||||
/datum/feed_message/news/event/animal_rights/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "[pick("Animal","Animal rights")] breakout on [affected_dest.name]"
|
||||
body = "[pick("Militant animal rights activists","Members of the terrorist group Animal Rights Consortium","Members of the terrorist group \'REDACTED\'")] have [pick("launched a campaign of terror","unleashed a swathe of destruction","raided farms and pastures","forced entry to \'REDACTED\'")] on [affected_dest.name] earlier today, freeing numerous [pick("farm animals","animals","\'REDACTED\'")]. Prices for tame and breeding animals have spiked as a result."
|
||||
|
||||
/datum/feed_message/news/event/festival
|
||||
dearer_goods = list(FOOD, ANIMALS)
|
||||
|
||||
/datum/feed_message/news/event/festival/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "Festivities begin on [affected_dest.name]"
|
||||
body = "A [pick("festival","week long celebration","day of revelry","planet-wide holiday")] has been declared on [affected_dest.name] by [pick("Governor","Commissioner","General","Commandant","Administrator")] [random_name(pick(MALE,FEMALE))] to celebrate [pick("the birth of their [pick("son","daughter")]","coming of age of their [pick("son","daughter")]","the pacification of rogue military cell","the apprehension of a violent criminal who had been terrorising the planet")]. Massive stocks of food and meat have been bought driving up prices across the planet."
|
||||
|
||||
/datum/feed_message/news/mundane
|
||||
is_admin_message = 1
|
||||
|
||||
/datum/feed_message/news/mundane/research/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "Major [pick("science","research")] [pick("breakthrough","find","discovery")] on [affected_dest.name]"
|
||||
body = "A major breakthough in the field of [pick("plasma research","super-compressed materials","nano-augmentation","bluespace research","volatile power manipulation")] \
|
||||
was announced [pick("yesterday","a few days ago","last week","earlier this month")] by a private firm on [affected_dest.name]. \
|
||||
Nanotrasen declined to comment as to whether this could impinge on profits."
|
||||
|
||||
/datum/feed_message/news/mundane/bargains/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "[pick("BIG SALE NOW ON","BARGAINS DOWN","PRICES GALORE")] at [affected_dest.name]!"
|
||||
body = "BARGAINS! BARGAINS! BARGAINS! Commerce Control on [affected_dest.name] wants you to know that everything must go! Across all retail centres, \
|
||||
all goods are being slashed, and all retailors are onboard - so come on over for the \[shopping\] time of your life."
|
||||
|
||||
/datum/feed_message/news/mundane/song/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
var/name = random_name(pick(MALE,FEMALE))
|
||||
var/title = "[pick("single","album","EP","label")] '[pick("Everyone's","Look at the","Baby don't eye those","All of those","Dirty nasty")] \
|
||||
[pick("roses","three stars","starships","nanobots","cyborgs","Skrell","Sren'darr")] \
|
||||
[pick("on Venus","on Reade","on Moghes","in my hand","slip through my fingers","die for you","sing your heart out","fly away")]'"
|
||||
headline = "Musician [name] to release new [title] in [rand(5,20)] days"
|
||||
body = "[pick("Singer","Singer/songwriter","Saxophonist","Pianist","Guitarist","TV personality","Star")] [name] \
|
||||
announced the debut of their new [title] \
|
||||
with [pick("pre-puchases available","a release tour","cover signings","a launch concert")] on [affected_dest.name]."
|
||||
|
||||
/datum/feed_message/news/mundane/movie/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
var/name = random_name(pick(MALE,FEMALE))
|
||||
var/title = "[pick("Deadly","The last","Lost","Dead")] [pick("Starships","Warriors","outcasts","Tajarans","Unathi","Skrell")] \
|
||||
[pick("of","from","raid","go hunting on","visit","ravage","pillage","destroy")] \
|
||||
[pick("Moghes","Earth","Biesel","Ahdomai","S'randarr","the Void","the Edge of Space")]"
|
||||
headline = "[name] to be involved in new movie `[title]` soon"
|
||||
body = "From the [pick("desk","home town","homeworld","mind")] of [pick("acclaimed","award-winning","popular","stellar")] \
|
||||
[pick("playwright","author","director","actor","TV star")] [name] comes the latest sensation: '[title]'.\
|
||||
. Own it on webcast today, or visit the galactic premier on [affected_dest.name]!"
|
||||
|
||||
/datum/feed_message/news/mundane/hunt/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
body = "Game hunters on [affected_dest.name] "
|
||||
if(prob(33))
|
||||
headline = "[pick("Animal","Game",affected_dest.name)] hunters [pick("make big discovery","bag trophy prize","win big")]"
|
||||
body += "were surprised when an unusual species experts have since identified as \
|
||||
[pick("a subclass of mammal","a divergent abhuman species","an intelligent species of lemur","organic/cyborg hybrids")] turned up. Believed to have been brought in by \
|
||||
[pick("alien smugglers","early colonists","syndicate raiders","unwitting tourists")], this is the first such specimen discovered in the wild."
|
||||
else if(prob(50))
|
||||
var/adversary = pick("nas'r","diyaab","samak","predator which has not yet been identified")
|
||||
headline = "[pick("Brave","Game",affected_dest.name)] hunters [pick("attacked","mauled","ambushed")] by [adversary]"
|
||||
body += "were attacked by a vicious [adversary]\
|
||||
. Officials urge caution, and locals are advised to stock up on armaments."
|
||||
else
|
||||
headline = "[pick("Animal","Game",affected_dest.name)] hunters [pick("break new record","find large specimen","get their big break")]"
|
||||
body += "brought in an unusually [pick("valuable","rare","large","vicious","intelligent")] [pick("mammal","predator","farwa","samak")] for inspection \
|
||||
[pick("today","yesterday","last week")]. Speculators suggest they may be tipped to break several records."
|
||||
|
||||
/datum/feed_message/news/mundane/election/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "[pick("Election night","Fear and loathing","Locals go to the polls","Big vote")] on the [affected_dest.name] campaign trail"
|
||||
body = "The pre-selection of an additional candidates was announced for the upcoming [pick("supervisors council","advisory board","governership","board of inquisitors")] \
|
||||
election on [affected_dest.name] was announced earlier today, \
|
||||
[pick("media mogul","web celebrity", "industry titan", "superstar", "famed chef", "popular gardener", "ex-army officer", "multi-billionaire")] \
|
||||
[random_name(pick(MALE,FEMALE))]. In a statement to the media they said '[pick("My only goal is to help the [pick("sick","poor","children")]",\
|
||||
"I will maintain Nanotrasen's record profits","I believe in our future","We must return to our moral core","Just like... chill out dudes")]'."
|
||||
|
||||
/datum/feed_message/news/mundane/gossip/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
var/name = random_name(pick(MALE,FEMALE))
|
||||
headline = "[pick("The latest scoop on [name]!","[name]'s dirty little [pick("secret","affair")]","Quasi-legal intel on [name]'s private life","We wiretapped [name]'s PDA message and found this. What you gonna do about it?","New very super seriously important news on [name]")]"
|
||||
body = "[pick("TV host","Webcast personality","Superstar","Model","Actor","Singer")] [name] "
|
||||
if(prob(33))
|
||||
body += "and their partner announced the birth of their [pick("first","second","third")] child on [affected_dest.name] early this morning. \
|
||||
Doctors say the child is well, and the parents are considering "
|
||||
if(prob(50))
|
||||
body += capitalize(pick(first_names_female))
|
||||
else
|
||||
body += capitalize(pick(first_names_male))
|
||||
body += " for the name."
|
||||
else if(prob(50))
|
||||
body += "announced their [pick("split","break up","marriage","engagement")] with [pick("TV host","webcast personality","superstar","model","actor","singer")] \
|
||||
[random_name(pick(MALE,FEMALE))] at [pick("a society ball","a new opening","a launch","a club")] on [affected_dest.name] yesterday, pundits are shocked."
|
||||
else
|
||||
|
||||
body += {"is recovering from plastic surgery in a clinic on [affected_dest.name] for the [pick("second","third","fourth")] time, reportedly having made the decision in response to
|
||||
[pick("unkind comments by an ex","rumours started by jealous friends","the decision to be dropped by a major sponsor","a disasterous interview on Tau Ceti Tonight")]."}
|
||||
|
||||
|
||||
/datum/feed_message/news/mundane/tourism/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
headline = "[pick("Come see","A trip to","Tours now available for new event on","Why to visit")] [affected_dest.name]"
|
||||
body = "Tourists are flocking to [affected_dest.name] after the surprise announcement of [pick("major shopping bargains by a wily retailer",\
|
||||
"a huge new ARG by a popular entertainment company","a secret tour by popular artiste [random_name(pick(MALE,FEMALE))]")]. \
|
||||
Tau Ceti Daily is offering discount tickets for two to see [random_name(pick(MALE,FEMALE))] live in return for eyewitness reports and up to the minute coverage."
|
||||
|
||||
/datum/feed_message/news/mundane/celeb_death/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
var/name = "[random_name(pick(MALE,FEMALE))]"
|
||||
headline = "[name] has [pick("passed","died","been found dead")]"
|
||||
body = "It is with regret today that we announce the sudden passing of the "
|
||||
if(prob(33))
|
||||
body += "[pick("distinguished","decorated","veteran","highly respected")] \
|
||||
[pick("Ship's Captain","Vice Admiral","Colonel","Lieutenant Colonel")] "
|
||||
else if(prob(50))
|
||||
body += "[pick("award-winning","popular","highly respected","trend-setting")] \
|
||||
[pick("comedian","singer/songwright","artist","playwright","TV personality","model")] "
|
||||
else
|
||||
body += "[pick("successful","highly respected","ingenious","esteemed")] \
|
||||
[pick("academic","Professor","Doctor","Scientist")] "
|
||||
|
||||
body += "[name] on [affected_dest.name] [pick("last week","yesterday","this morning","two days ago","three days ago")]\
|
||||
[pick(". Assassination is suspected, but the perpetrators have not yet been brought to justice",\
|
||||
" due to Syndicate infiltrators (since captured)",\
|
||||
" during an industrial accident",\
|
||||
" due to [pick("heart failure","kidney failure","liver failure","brain hemorrhage")]")]"
|
||||
|
||||
/datum/feed_message/news/mundane/resignation/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
var/name = "[random_name(pick(MALE,FEMALE))]"
|
||||
headline = "Nanotrasen Admiral [name] [pick("resigns","calls it quits","retires")]"
|
||||
body = "Nanotrasen regretfully announces the resignation of [pick("Sector","Division","Ship","Vice")] Admiral [name]."
|
||||
if(prob(25))
|
||||
var/locstring = pick("Segunda","Salusa","Cepheus","Andromeda","Gruis","Corona","Aquila","Asellus") + " " + pick("I","II","III","IV","V","VI","VII","VIII")
|
||||
body += " In a ceremony on [affected_dest.name] this afternoon, they will be awarded the \
|
||||
[pick("Red Star of Sacrifice","Purple Heart of Heroism","Blue Eagle of Loyalty","Green Lion of Ingenuity")] for "
|
||||
if(prob(33))
|
||||
body += "their actions at the Battle of [pick(locstring,"REDACTED")]."
|
||||
else if(prob(50))
|
||||
body += "their contribution to the colony of [locstring]."
|
||||
else
|
||||
body += "their loyal service over the years."
|
||||
else if(prob(33))
|
||||
body += " They are expected to settle down in [affected_dest.name], where they have been granted a handsome pension."
|
||||
else if(prob(50))
|
||||
body += " The news was broken on [affected_dest.name] earlier today, where they cited reasons of '[pick("health","family","REDACTED")]'"
|
||||
else
|
||||
body += " Administration Aerospace wishes them the best of luck in their retirement ceremony on [affected_dest.name]."
|
||||
|
||||
/datum/feed_message/news/trivial
|
||||
channel_name = "The Gibson Gazette"
|
||||
//is_admin_message = 1
|
||||
|
||||
/datum/feed_message/news/trivial/New(var/datum/trade_destination/dest)
|
||||
..()
|
||||
author = pick("Editor Mike Hammers","Assistant Editor Carl Ritz")
|
||||
headline = "[pick("The [pick("daily","weekly")] round-up","The latest run-down","The current events","BREAKING NEWS PLEASE SELECT THIS STORY ON ALL CASTERS...","The update","Stories you can't read anywhere else...","The news they didn't want you to know","This [pick("day","week")] in [pick("science","information","the news","the happenings","the headlines","the story","stupid","insanity","boredom","shame","confusion","hilarity","the vast nothingness of space")]")] on [affected_dest.name]!"
|
||||
body = ""
|
||||
var/list/thenews = file2list("config/news/trivial.txt")
|
||||
for(var/i in 1 to rand(3,5))
|
||||
body += "/ [pick_n_take(thenews)] /" // because newlines don't work, this will have to do
|
||||
body = replacetext(body,"{{AFFECTED}}",affected_dest.name)
|
||||
@@ -250,6 +250,7 @@
|
||||
#include "code\controllers\subsystem\machinery.dm"
|
||||
#include "code\controllers\subsystem\mob.dm"
|
||||
#include "code\controllers\subsystem\nanoui.dm"
|
||||
#include "code\controllers\subsystem\news.dm"
|
||||
#include "code\controllers\subsystem\objects.dm"
|
||||
#include "code\controllers\subsystem\pathfinder.dm"
|
||||
#include "code\controllers\subsystem\pathing.dm"
|
||||
@@ -302,7 +303,6 @@
|
||||
#include "code\datums\modules.dm"
|
||||
#include "code\datums\mutable_appearance.dm"
|
||||
#include "code\datums\next_map.dm"
|
||||
#include "code\datums\periodic_news.dm"
|
||||
#include "code\datums\profiling.dm"
|
||||
#include "code\datums\recipe.dm"
|
||||
#include "code\datums\recruiter.dm"
|
||||
@@ -2245,8 +2245,8 @@
|
||||
#include "code\modules\nano\nanoui.dm"
|
||||
#include "code\modules\news\news.dm"
|
||||
#include "code\modules\news\news_events.dm"
|
||||
#include "code\modules\news\news_events_mundane.dm"
|
||||
#include "code\modules\news\news_trade_destinations.dm"
|
||||
#include "code\modules\news\news_types.dm"
|
||||
#include "code\modules\optics\photocollector.dm"
|
||||
#include "code\modules\optics\prism.dm"
|
||||
#include "code\modules\optics\mirrors\frame.dm"
|
||||
|
||||
Reference in New Issue
Block a user