mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
[MIRROR] ATC Refactor (#10422)
Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
1ad7827d9d
commit
f543fd71e2
150
code/modules/busy_space/atc_chatter.dm
Normal file
150
code/modules/busy_space/atc_chatter.dm
Normal file
@@ -0,0 +1,150 @@
|
||||
//minimum and maximum message delays, typically tracked in seconds
|
||||
#define MIN_MSG_DELAY 3
|
||||
#define MAX_MSG_DELAY 6
|
||||
|
||||
/datum/atc_chatter
|
||||
VAR_PROTECTED/phase = 1 // phase of dialog being displayed
|
||||
// Docks and zones
|
||||
VAR_PROTECTED/yes = FALSE
|
||||
VAR_PROTECTED/request = ""
|
||||
VAR_PROTECTED/callname = ""
|
||||
VAR_PROTECTED/response = ""
|
||||
VAR_PROTECTED/number = 1
|
||||
VAR_PROTECTED/zone = ""
|
||||
VAR_PROTECTED/landing_zone = ""
|
||||
VAR_PROTECTED/landing_type = ""
|
||||
VAR_PROTECTED/landing_move = ""
|
||||
VAR_PROTECTED/landing_short = ""
|
||||
// Ship identities
|
||||
VAR_PROTECTED/name = ""
|
||||
VAR_PROTECTED/owner = ""
|
||||
VAR_PROTECTED/prefix = ""
|
||||
VAR_PROTECTED/firstid = ""
|
||||
VAR_PROTECTED/mission = ""
|
||||
VAR_PROTECTED/shipname = ""
|
||||
VAR_PROTECTED/destname = ""
|
||||
VAR_PROTECTED/slogan = ""
|
||||
VAR_PROTECTED/org_type = ""
|
||||
// Second ship identity
|
||||
VAR_PROTECTED/secondname = ""
|
||||
VAR_PROTECTED/secondowner = ""
|
||||
VAR_PROTECTED/secondprefix = ""
|
||||
VAR_PROTECTED/secondid = ""
|
||||
VAR_PROTECTED/secondshipname = ""
|
||||
VAR_PROTECTED/org_type2 = ""
|
||||
// Combined data
|
||||
VAR_PROTECTED/combined_first_name = ""
|
||||
VAR_PROTECTED/short_first_name = ""
|
||||
VAR_PROTECTED/comm_first_name = ""
|
||||
VAR_PROTECTED/combined_second_name = ""
|
||||
VAR_PROTECTED/comm_second_name = ""
|
||||
VAR_PROTECTED/short_second_name = ""
|
||||
VAR_PROTECTED/mission_noun = ""
|
||||
|
||||
/datum/atc_chatter/New(var/datum/lore/organization/source, var/datum/lore/organization/secondary)
|
||||
if(source && secondary) // Evac shuttle atc passes nothing in and only uses map datum for names!
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
// Get the docking bay or zone in space the ships are passing into
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//First response is 'yes', second is 'no'
|
||||
var/requests = list(
|
||||
"special flight rules" = list("authorizing special flight rules", "denying special flight rules, not allowed for your traffic class"),
|
||||
"current solar weather info" = list("sending you the relevant information via tightbeam", "your request has been queued, stand by"),
|
||||
"sector aerospace priority" = list("affirmative, sector aerospace priority is yours", "negative, another vessel in your sector has priority right now"),
|
||||
"system traffic info" = list("sending you current traffic info", "request queued, please hold"),
|
||||
"refueling information" = list("sending refueling information now", "depots currently experiencing fuel shortages, advise you move on"),
|
||||
"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")
|
||||
)
|
||||
request = pick(requests)
|
||||
yes = prob(90) //Chance for them to say yes vs no
|
||||
callname = "[using_map.dock_name] Control"
|
||||
response = requests[request][yes ? 1 : 2] //1 is yes, 2 is no
|
||||
number = rand(1,42)
|
||||
zone = pick("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega")
|
||||
//fallbacks in case someone sets the dock_type on the map datum to null- it defaults to "station" normally
|
||||
landing_zone = "LZ [zone]"
|
||||
landing_type = "landing zone"
|
||||
landing_move = "landing request"
|
||||
landing_short = "land"
|
||||
switch(using_map.dock_type)
|
||||
if("surface") //formal installations with proper facilities
|
||||
landing_zone = "landing pad [number]"
|
||||
landing_type = "landing pad"
|
||||
landing_move = "landing request"
|
||||
landing_short = "land"
|
||||
callname = "[using_map.dock_name] Tower"
|
||||
if("frontier") //for frontier bases - landing spots are literally just open ground, maybe concrete at best
|
||||
landing_zone = "LZ [zone]"
|
||||
landing_type = "landing zone"
|
||||
landing_move = "landing request"
|
||||
landing_short = "land"
|
||||
callname = "[using_map.dock_name] Tower"
|
||||
if("station") //standard station pattern
|
||||
landing_zone = "docking bay [number]"
|
||||
landing_type = "docking bay"
|
||||
landing_move = "docking request"
|
||||
landing_short = "dock"
|
||||
callname = "[using_map.dock_name] Control"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
// Construct the two ships involved from their loremaster organization data
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//Let's get some mission parameters, pick our first ship
|
||||
name = source.name //get the name
|
||||
owner = source.short_name //Use the short name
|
||||
prefix = pick(source.ship_prefixes) //Pick a random prefix
|
||||
firstid = "[rand(0,9)][rand(0,9)][rand(0,9)][rand(0,9)]"
|
||||
mission = source.ship_prefixes[prefix] //The value of the prefix is the mission type that prefix does
|
||||
shipname = pick(source.ship_names) //Pick a random ship name
|
||||
destname = pick(source.destination_names) //destination is where?
|
||||
slogan = pick(source.slogans) //god help you all
|
||||
org_type = source.org_type //which group do we belong to?
|
||||
//pick our second ship
|
||||
secondname = secondary.name //not used atm, commented out to suppress errors
|
||||
secondowner = secondary.short_name
|
||||
secondprefix = pick(secondary.ship_prefixes) //Pick a random prefix
|
||||
secondid = "[rand(0,9)][rand(0,9)][rand(0,9)][rand(0,9)]"
|
||||
secondshipname = pick(secondary.ship_names) //Pick a random ship name
|
||||
org_type2 = secondary.org_type
|
||||
|
||||
//DEBUG BLOCK
|
||||
//to_world("DEBUG OUTPUT 1: [name], [owner], [prefix], [firstid], [mission], [shipname], [org_type], [destname]")
|
||||
//to_world("DEBUG OUTPUT 2: [secondowner], [secondprefix], [secondid], [secondshipname], [org_type2]")
|
||||
//to_world("DEBUG OUTPUT 3: Chose [chatter_type]")
|
||||
//DEBUG BLOCK ENDS
|
||||
|
||||
combined_first_name = "[prefix] [firstid] |[shipname]|" //formal traffic control identifier for use in messages
|
||||
short_first_name = "[prefix] |[shipname]|" //special variant for certain events
|
||||
comm_first_name = "[owner] [shipname]" //corpname + shipname for speaker identity in log
|
||||
combined_second_name = "[secondprefix] [secondid] |[secondshipname]|"
|
||||
comm_second_name = "[secondowner] [secondshipname]"
|
||||
short_second_name = "[secondprefix] |[secondshipname]|" //not actually used for now
|
||||
|
||||
mission_noun = pick(source.flight_types) //pull from a list of owner-specific flight ops, to allow an extra dash of flavor
|
||||
if(source.complex_tasks) //if our source has the complex_tasks flag, regenerate with a two-stage assignment
|
||||
mission_noun = "[pick(source.task_types)] [pick(source.flight_types)]"
|
||||
|
||||
// Get the ball rolling
|
||||
squak()
|
||||
|
||||
/datum/atc_chatter/proc/squak()
|
||||
PROTECTED_PROC(TRUE)
|
||||
// calls acknowledge at each message phase until final, where it qdel(src)
|
||||
return
|
||||
|
||||
/datum/atc_chatter/proc/next(var/multiplier = 1,var/pr_ref = null)
|
||||
SHOULD_NOT_OVERRIDE(TRUE)
|
||||
PROTECTED_PROC(TRUE)
|
||||
if(!pr_ref) // don't advance the section unless we actually call squak(), otherwise it's a submessage override
|
||||
pr_ref = PROC_REF(squak)
|
||||
phase++ // next
|
||||
addtimer(CALLBACK(src, pr_ref), (rand(MIN_MSG_DELAY,MAX_MSG_DELAY) SECONDS) * multiplier)
|
||||
|
||||
/datum/atc_chatter/proc/finish() // Override me if you have any cleanup to do
|
||||
SHOULD_CALL_PARENT(TRUE)
|
||||
PROTECTED_PROC(TRUE)
|
||||
qdel(src)
|
||||
|
||||
#undef MIN_MSG_DELAY
|
||||
#undef MAX_MSG_DELAY
|
||||
77
code/modules/busy_space/atc_chatter_type.dm
Normal file
77
code/modules/busy_space/atc_chatter_type.dm
Normal file
@@ -0,0 +1,77 @@
|
||||
// Override/Replace me downstream if you need different chatter, call parent at end if you want this dialog too! Returns a subtype path of /datum/atc_chatter!
|
||||
/datum/atc_chatter_type/proc/chatter_box(var/org_type,var/org_type2)
|
||||
if((org_type == "government" || org_type == "neutral" || org_type == "military" || org_type == "corporate" || org_type == "system defense" || org_type == "spacer") && org_type2 == "pirate") //this is ugly but when I tried to do it with !='s it fired for pirate-v-pirate, still not sure why. might as well stick it up here so it takes priority over other combos.
|
||||
return /datum/atc_chatter/distress
|
||||
if(org_type == "corporate") //corporate-specific subset for the slogan event. despite the relatively high weight it was still quite rare in tests.
|
||||
return pick(5;/datum/atc_chatter/emerg,
|
||||
25;/datum/atc_chatter/policescan,
|
||||
25;/datum/atc_chatter/traveladvisory,
|
||||
30;/datum/atc_chatter/pathwarning,
|
||||
180;/datum/atc_chatter/dockingrequestgeneric,
|
||||
30;/datum/atc_chatter/undockingrequest,
|
||||
/datum/atc_chatter/misc,
|
||||
30;/datum/atc_chatter/undockingdenied,
|
||||
50;/datum/atc_chatter/slogan,
|
||||
25;/datum/atc_chatter/civvieleaks,
|
||||
25;/datum/atc_chatter/report_to_dock)
|
||||
if((org_type == "government" || org_type == "neutral" || org_type == "military"))
|
||||
return pick(5;/datum/atc_chatter/emerg,
|
||||
25;/datum/atc_chatter/policescan,
|
||||
25;/datum/atc_chatter/traveladvisory,
|
||||
30;/datum/atc_chatter/pathwarning,
|
||||
180;/datum/atc_chatter/dockingrequestgeneric,
|
||||
30;/datum/atc_chatter/undockingrequest,
|
||||
/datum/atc_chatter/misc,
|
||||
30;/datum/atc_chatter/undockingdenied,
|
||||
25;/datum/atc_chatter/civvieleaks,
|
||||
25;/datum/atc_chatter/report_to_dock)
|
||||
if(org_type == "spacer")
|
||||
return pick(5;/datum/atc_chatter/emerg,
|
||||
15;/datum/atc_chatter/policescan,
|
||||
15;/datum/atc_chatter/traveladvisory,
|
||||
5;/datum/atc_chatter/pathwarning,
|
||||
150;/datum/atc_chatter/dockingrequestgeneric,
|
||||
30;/datum/atc_chatter/undockingrequest,
|
||||
/datum/atc_chatter/misc,
|
||||
10;/datum/atc_chatter/undockingdenied,
|
||||
25;/datum/atc_chatter/civvieleaks,
|
||||
25;/datum/atc_chatter/report_to_dock)
|
||||
//the following filters *always* fire their 'unique' event when they're tripped, simply because the conditions behind them are quite rare to begin with
|
||||
if(org_type == "smuggler" && org_type2 != "system defense") //just straight up funnel smugglers into always being caught, otherwise we get them asking for traffic info and stuff
|
||||
return /datum/atc_chatter/policeflee
|
||||
if(org_type == "smuggler" && org_type2 == "system defense") //ditto, if an SDF ship catches them
|
||||
return /datum/atc_chatter/policeshipflee
|
||||
if((org_type == "smuggler" || org_type == "pirate") && (org_type2 == "system defense" || org_type2 == "military")) //if we roll this combo instead, time for the SDF or Mercs to do their fucking jobs
|
||||
return /datum/atc_chatter/policeshipcombat
|
||||
if((org_type == "smuggler" || org_type == "pirate") && org_type2 != "system defense") //but if we roll THIS combo, time to alert the SDF to get off their asses
|
||||
return /datum/atc_chatter/hostiledetected
|
||||
//SDF-specific events that need to filter based on the second party (basically just the following SDF-unique list with the soft-result ship scan thrown in)
|
||||
if(org_type == "system defense" && (org_type2 == "government" || org_type2 == "neutral" || org_type2 == "military" || org_type2 == "corporate" || org_type2 == "spacer")) //let's see if we can narrow this down, I didn't see many ship-to-ship scans
|
||||
return pick(75;/datum/atc_chatter/policeshipscan,
|
||||
/datum/atc_chatter/sdfpatrolupdate,
|
||||
75;/datum/atc_chatter/sdfendingpatrol,
|
||||
180;/datum/atc_chatter/dockingrequestgeneric,
|
||||
20;/datum/atc_chatter/undockingrequest,
|
||||
75;/datum/atc_chatter/sdfbeginpatrol,
|
||||
50;/datum/atc_chatter/misc,
|
||||
10;/datum/atc_chatter/civvieleaks,
|
||||
70;/datum/atc_chatter/sdfchatter)
|
||||
//SDF-specific events that don't require the secondary at all, in the event that we manage to roll SDF + hostile/smuggler or something
|
||||
if(org_type == "system defense")
|
||||
return pick(/datum/atc_chatter/sdfpatrolupdate,
|
||||
60;/datum/atc_chatter/sdfendingpatrol,
|
||||
120;/datum/atc_chatter/dockingrequestgeneric,
|
||||
20;/datum/atc_chatter/undockingrequest,
|
||||
80;/datum/atc_chatter/sdfbeginpatrol,
|
||||
/datum/atc_chatter/misc,
|
||||
/datum/atc_chatter/sdfchatter)
|
||||
//if we somehow don't match any of the other existing filters once we've run through all of them
|
||||
return pick(5;/datum/atc_chatter/emerg,
|
||||
25;/datum/atc_chatter/policescan,
|
||||
25;/datum/atc_chatter/traveladvisory,
|
||||
30;/datum/atc_chatter/pathwarning,
|
||||
90;/datum/atc_chatter/dockingrequestgeneric,
|
||||
30;/datum/atc_chatter/undockingrequest,
|
||||
30;/datum/atc_chatter/undockingdenied,
|
||||
/datum/atc_chatter/misc,
|
||||
25;/datum/atc_chatter/civvieleaks)
|
||||
85
code/modules/busy_space/chatter_civilian.dm
Normal file
85
code/modules/busy_space/chatter_civilian.dm
Normal file
@@ -0,0 +1,85 @@
|
||||
/datum/atc_chatter/traveladvisory/squak()
|
||||
//Control event: travel advisory
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("[callname], all vessels in the [using_map.starsys_name] system. Priority travel advisory follows.")
|
||||
next()
|
||||
else
|
||||
var/flightwarning = pick("Solar flare activity is spiking and expected to cause issues along main flight lanes [rand(1,33)], [rand(34,67)], and [rand(68,100)]","Pirate activity is on the rise, stay close to System Defense vessels","We're seeing a rise in illegal salvage operations, please report any unusual activity to the nearest SDF vessel via channel [SSatc.sdfchannel]","A quarantined [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","A prison [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","Traffic volume is higher than normal, expect processing delays","Anomalous bluespace activity detected [pick("along route [rand(1,100)]","in sector [rand(1,100)]")], exercise caution","Smugglers have been particularly active lately, expect increased security scans","Depots are currently experiencing a fuel shortage, expect delays and higher rates","Asteroid mining has displaced debris dangerously close to main flight lanes on route [rand(1,100)], watch for potential impactors","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship","mining barge","salvage trawler")] has collided with [pick("a fuel tanker","a cargo liner","a passenger liner","a freighter","a transport ship","a mining barge","a salvage trawler","a meteoroid","a cluster of space debris","an asteroid","an ice-rich comet")] near route [rand(1,100)], watch for debris and do not impede emergency service vessels","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship","mining barge","salvage trawler")] on route [rand(1,100)] has experienced total engine failure. Emergency response teams are en route, please observe minimum safe distances and do not impede emergency service vessels","Transit routes have been recalculated to adjust for planetary drift. Please synch your astronav computers as soon as possible to avoid delays and difficulties","[pick("Bounty hunters","System Defense officers","Mercenaries")] are currently searching for a wanted fugitive, report any sightings of suspicious activity to System Defense via channel [SSatc.sdfchannel]",10;"It's space [pick("carp","shark")] breeding season. [pick("Stars","Skies","Gods","God","Goddess","Fates")] have mercy on you all","We're reading [pick("void","drive","sensor")] echoes that are consistent with illegal cloaking devices, be alert for suspicious activity in your sector")
|
||||
SSatc.msg("[flightwarning]. Control out.")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/pathwarning/squak()
|
||||
//Control event: warning to a specific vessel
|
||||
switch(phase)
|
||||
if(1)
|
||||
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","a live-fire SDF training exercise","an ongoing Search & Rescue operation","a hazardous derelict","an intense electrical storm","an intense ion storm","a shoal of space carp","a pack of space sharks","an asteroid infested with gnat hives","a protected space ray habitat","a region with anomalous bluespace activity","a rogue comet")
|
||||
SSatc.msg("[combined_first_name], [callname]. Your [pick("ship","vessel","starship")] is approaching [navhazard], observe minimum safe distance and adjust your heading appropriately.")
|
||||
next()
|
||||
if(2)
|
||||
var/confirm = pick("Understood","Roger that","Affirmative","Our bad","Thanks for the heads up")
|
||||
SSatc.msg("[confirm] [callname], adjusting course.","[comm_first_name]")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("Your compliance is appreciated, [combined_first_name].")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/civvieleaks/squak()
|
||||
//Civil event: leaky chatter
|
||||
switch(phase)
|
||||
if(1)
|
||||
var/commleak = pick("thatsmywife","missingkit","pipeleaks","weirdsmell","weirdsmell2","scug","teppi")
|
||||
switch(commleak)
|
||||
if("thatsmywife")
|
||||
SSatc.msg("-so then I says to him, |that's no [pick("space carp","space shark","vox","garbage scow","freight liner","cargo hauler","superlifter")], that's my +wife!+| And he-","[comm_first_name]")
|
||||
next()
|
||||
if("missingkit")
|
||||
SSatc.msg("-did you get the kit from down on deck [rand(1,4)]? I need th-","[comm_first_name]")
|
||||
next()
|
||||
if("pipeleaks")
|
||||
SSatc.msg("I swear if these pipes keep leaking I'm going to-","[comm_first_name]")
|
||||
next()
|
||||
if("weirdsmell")
|
||||
SSatc.msg("-and where the hell is that smell coming fr-","[comm_first_name]")
|
||||
next()
|
||||
if("weirdsmell2")
|
||||
SSatc.msg("-hat in the [pick("three","five","seven","nine")] hells did you |eat| [pick("ensign","crewman")]? This compartment reeks of-","[comm_first_name]")
|
||||
next()
|
||||
if("scug")
|
||||
SSatc.msg("-and if that weird cat of yours keeps crawling into the pipes we-","[comm_first_name]")
|
||||
next()
|
||||
if("teppi")
|
||||
SSatc.msg("-at are we supposed to do with this damn cow?","[comm_first_name]")
|
||||
next(1,PROC_REF(teppi_next)) // Someone had to be a snowflake
|
||||
if(2)
|
||||
SSatc.msg("[combined_first_name], your internal comms are leaking[pick("."," again.",", again.",". |Again|.")]")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("Sorry Control, won't happen again.","[comm_first_name]")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/civvieleaks/proc/teppi_next()
|
||||
SSatc.msg("I don't think it's a cow, sir, it looks more like a-","[comm_first_name]")
|
||||
next()
|
||||
|
||||
/datum/atc_chatter/slogan/squak()
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("The following is a sponsored message from [name].","Facility PA")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[slogan]","Facility PA")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/misc/squak()
|
||||
//time for generic message
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("[callname], [combined_first_name] on [mission] [pick(mission_noun)] to [destname], requesting [request].","[comm_first_name]")
|
||||
next()
|
||||
if(2)
|
||||
SSatc.msg("[combined_first_name], [callname], [response].")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[callname], [yes ? "thank you" : "understood"], out.","[comm_first_name]")
|
||||
finish()
|
||||
50
code/modules/busy_space/chatter_distress.dm
Normal file
50
code/modules/busy_space/chatter_distress.dm
Normal file
@@ -0,0 +1,50 @@
|
||||
/datum/atc_chatter/emerg/squak()
|
||||
//mayday call
|
||||
switch(phase)
|
||||
if(1)
|
||||
var/problem = pick("We have hull breaches on multiple decks","We have unknown hostile life forms on board","Our primary drive is failing","We have [pick("asteroids","space debris")] impacting the hull","We're experiencing a total loss of engine power","We have hostile ships closing fast","There's smoke [pick("in the cockpit","on the bridge")]","We have unidentified boarders","Our reaction control system is malfunctioning and we're losing stability","Our life support [pick("is failing","has failed")]")
|
||||
SSatc.msg("+[pick("Mayday, mayday, mayday!","Mayday, mayday!","Mayday! Mayday!")]+ [combined_first_name], declaring an emergency! [problem]!","[comm_first_name]")
|
||||
next()
|
||||
if(2)
|
||||
SSatc.msg("[combined_first_name], [callname]. Switch to emergency responder channel [SSatc.ertchannel].")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[callname], [combined_first_name] switching now.","[comm_first_name]")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/distress
|
||||
VAR_PRIVATE/state = null
|
||||
|
||||
/datum/atc_chatter/distress/squak()
|
||||
//Ship event: distress call, under attack
|
||||
if(!state)
|
||||
state = pick(66;"calm",34;"panic")
|
||||
switch(state)
|
||||
if("calm")
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("[using_map.starsys_name] Defense Control, [combined_first_name].","[comm_first_name]")
|
||||
next()
|
||||
if(2)
|
||||
SSatc.msg("[combined_first_name], [using_map.starsys_name] Defense Control.","[using_map.starsys_name] Defense Control")
|
||||
next()
|
||||
if(3)
|
||||
SSatc.msg("Another vessel in our area is moving [pick("aggressively","suspiciously","erratically","unpredictably","with clear hostile intent")], please advise? Forwarding sensor data now.","[comm_first_name]","[comm_first_name]")
|
||||
next()
|
||||
if(4)
|
||||
SSatc.msg("[combined_first_name], [using_map.starsys_name] Defense Control copies. Sensor data matches logged profile for [secondprefix] |[secondshipname]|. SDF units are en route to your location.","[using_map.starsys_name] Defense Control")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[pick("Appreciated","Copy that","Understood")], Control. Switching to [SSatc.sdfchannel] to coordinate.","[comm_first_name]")
|
||||
finish()
|
||||
if("panic")
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("+Mayday, mayday, mayday!+ This is [combined_first_name] declaring an emergency! We are under attack! Requesting immediate assistance!","[comm_first_name]")
|
||||
next()
|
||||
if(2)
|
||||
SSatc.msg("[combined_first_name], [using_map.starsys_name] Defense Control. SDF is en route, contact on [SSatc.sdfchannel].")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[pick("Copy that","Understood")] [using_map.starsys_name] Defense Control, switching now!","[comm_first_name]")
|
||||
finish()
|
||||
154
code/modules/busy_space/chatter_docking.dm
Normal file
154
code/modules/busy_space/chatter_docking.dm
Normal file
@@ -0,0 +1,154 @@
|
||||
/datum/atc_chatter/report_to_dock
|
||||
VAR_PRIVATE/situation_type = null
|
||||
|
||||
/datum/atc_chatter/report_to_dock/squak()
|
||||
//Control event: personnel report to dock
|
||||
if(!situation_type)
|
||||
situation_type = pick("medical","security","engineering","animal control","hazmat")
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("This is [using_map.dock_name] Tower. Would a free [situation_type] team please report to [landing_zone] immediately. This is not a drill.")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("Repeat, any free [situation_type] team, report to [landing_zone] immediately. This is +not+ a drill.")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/dockingrequestgeneric
|
||||
VAR_PRIVATE/request_type = null
|
||||
VAR_PRIVATE/appreciation = null
|
||||
VAR_PRIVATE/dockingplan = null
|
||||
|
||||
/datum/atc_chatter/dockingrequestgeneric/squak()
|
||||
//Ship event: docking request (generic)
|
||||
if(!request_type)
|
||||
request_type = pick(100;"generic",50;"delayed",80;"supply",30;"repair",30;"medical",30;"security")
|
||||
appreciation = pick("Much appreciated","Many thanks","Understood","Perfect, thank you","Excellent, thanks","Great","Copy that")
|
||||
dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.")
|
||||
switch(request_type)
|
||||
if("generic")
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("[callname], [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[comm_first_name]")
|
||||
next()
|
||||
if(2)
|
||||
SSatc.msg("[combined_first_name], [callname]. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[appreciation], [callname]. [dockingplan]","[comm_first_name]")
|
||||
finish()
|
||||
|
||||
if("delayed")
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("[callname], [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[comm_first_name]")
|
||||
next()
|
||||
if(2)
|
||||
var/reason = pick(
|
||||
"we don't have any free [landing_type]s right now, please [pick("stand by for a couple of minutes","hold for a few minutes")]",
|
||||
"you're too far away, please close to ten thousand meters","we're seeing heavy traffic around the [landing_type]s right now, please [pick("stand by for a couple of minutes","hold for a few minutes")]","ground crews are currently clearing up [pick("loose containers","a fuel spill")] to free up one of our [landing_type]s, please [pick("stand by for a couple of minutes","hold for a few minutes")]","another vessel has aerospace priority right now, please [pick("stand by for a couple of minutes","hold for a few minutes")]")
|
||||
SSatc.msg("[combined_first_name], [callname]. Request denied, [reason] and resubmit your request.")
|
||||
next()
|
||||
if(3)
|
||||
SSatc.msg("Understood, [callname].","[comm_first_name]")
|
||||
next(60)
|
||||
if(4)
|
||||
SSatc.msg("[callname], [combined_first_name], resubmitting [landing_move].","[comm_first_name]")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[combined_first_name], [callname]. Everything appears to be in order now, permission granted, proceed to [landing_zone]. Follow the green lights on your way in.")
|
||||
finish()
|
||||
|
||||
if("supply")
|
||||
switch(phase)
|
||||
if(1)
|
||||
var/preintensifier = pick(75;"getting ",75;"running ","",15;"like, ") //whitespace hack, sometimes they'll add a preintensifier, but not always
|
||||
var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda","a little","a bit","rather","sorta")
|
||||
var/low_thing = pick("ammunition","munitions","clean water","food","spare parts","medical supplies","reaction mass","gas","hydrogen fuel","phoron fuel","fuel",10;"tea",10;"coffee",10;"soda",10;"pizza",10;"beer",10;"booze",10;"vodka",10;"snacks") //low chance of a less serious shortage
|
||||
appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you")
|
||||
SSatc.msg("[callname], [combined_first_name]. We're [preintensifier][intensifier] low on [low_thing]. Requesting permission to [landing_short] for resupply.","[comm_first_name]")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[combined_first_name], [callname]. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.")
|
||||
finish()
|
||||
|
||||
if("repair")
|
||||
switch(phase)
|
||||
if(1)
|
||||
var/damagestate = pick("We've experienced some hull damage","We're suffering minor system malfunctions","We're having some [pick("weird","strange","odd","unusual")] technical issues","We're overdue maintenance","We have several minor space debris impacts","We've got some battle damage here","Our reactor output is fluctuating","We're hearing some weird noises from the [pick("engines","pipes","ducting","HVAC")]","We just got caught in a solar flare","We had a close call with an asteroid","We have a [pick("minor","mild","major","serious")] [pick("fuel","water","oxygen","gas")] leak","We have depressurized compartments","We have a hull breach","One of our [pick("hydraulic","pneumatic")] systems has depressurized","Our [pick("life support","water recycling system","navcomp","shield generator","reaction control system","auto-repair system","repair drone controller","artificial gravity generator","environmental control system","master control system")] is [pick("failing","acting up","on the fritz","shorting out","glitching out","freaking out","malfunctioning")]")
|
||||
appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you")
|
||||
SSatc.msg("[callname], [combined_first_name]. [damagestate]. Requesting permission to [landing_short] for repairs and maintenance.","[comm_first_name]")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[combined_first_name], [callname]. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Repair crews are standing by, contact them on channel [SSatc.engchannel].")
|
||||
finish()
|
||||
|
||||
if("medical")
|
||||
switch(phase)
|
||||
if(1)
|
||||
var/species = pick("human","humanoid","unathi","lizard","tajaran","feline","skrell","akula","promethean","sergal","synthetic","robotic","teshari","avian","vulpkanin","canine","vox","zorren","hybrid","mixed-species","vox","grey","alien",5;"catslug")
|
||||
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 [pick("","[species] ")]passengers","sick [pick("","[species] ")]passengers","injured engineers","wounded marines","a delicate situation","a pregnant passenger","injured [pick("","[species] ")]castaways","recovered escape pods","unknown escape pods")
|
||||
appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you")
|
||||
SSatc.msg("[callname], [combined_first_name]. We have [medicalstate] on board. Requesting permission to [landing_short] for medical assistance.","[comm_first_name]")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[combined_first_name], [callname]. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Medtechs are standing by, contact them on channel [SSatc.medchannel].")
|
||||
finish()
|
||||
|
||||
if("security")
|
||||
switch(phase)
|
||||
if(1)
|
||||
var/species = pick("human","humanoid","unathi","lizard","tajaran","feline","skrell","akula","promethean","sergal","synthetic","robotic","teshari","avian","vulpkanin","canine","vox","zorren","hybrid","mixed-species","vox","grey","alien",5;"catslug")
|
||||
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","stolen goods","[pick("a container","containers")] full of [pick("confiscated contraband","stolen goods")]",5;"a very lost shadekin",10;"some kinda big wooly critter",15;"a buncha lost-looking uh... cat... slug... |things?|",10;"a raging case of [pick("spiders","crabs","geese","gnats","sharks","carp")]") //gotta have a little something to lighten the mood now and then
|
||||
appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","Perfect, thank you")
|
||||
SSatc.msg("[callname], [combined_first_name]. We have [securitystate] on board and require security assistance. Requesting permission to [landing_short].","[comm_first_name]")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[combined_first_name], [callname]. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Security teams are standing by, contact them on channel [SSatc.secchannel].")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/undockingrequest
|
||||
VAR_PRIVATE/safetravels
|
||||
|
||||
/datum/atc_chatter/undockingrequest/squak()
|
||||
//Ship event: undocking request
|
||||
if(!safetravels)
|
||||
safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you")
|
||||
switch(phase)
|
||||
if(1)
|
||||
var/takeoff = pick("depart","launch")
|
||||
SSatc.msg("[callname], [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[comm_first_name]")
|
||||
next()
|
||||
if(2)
|
||||
var/request_type = pick(150;"generic",50;"delayed")
|
||||
switch(request_type)
|
||||
if("generic")
|
||||
SSatc.msg("[combined_first_name], [callname]. Permission granted. Docking clamps released. [safetravels].")
|
||||
next()
|
||||
if("delayed")
|
||||
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","Exhaust deflectors are not yet in position, please hold","There's heavy traffic right now, it's not safe for your vessel to launch","Another vessel has aerospace priority at this moment","Port officials are still aboard")
|
||||
SSatc.msg("Negative [combined_first_name], request denied. [denialreason]. Try again in a few minutes.")
|
||||
next(60,PROC_REF(delay_1)) // SNNOOWWW FLAAKKEEE
|
||||
else
|
||||
var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too","So long")
|
||||
SSatc.msg("[thanks], [callname]. This is [combined_first_name] setting course for [destname], out.","[comm_first_name]")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/undockingrequest/proc/delay_1()
|
||||
SSatc.msg("[callname], [combined_first_name], re-requesting permission to depart from [landing_zone].","[comm_first_name]")
|
||||
next(1,PROC_REF(delay_2))
|
||||
|
||||
/datum/atc_chatter/undockingrequest/proc/delay_2()
|
||||
SSatc.msg("[combined_first_name], [callname]. Everything appears to be in order now, permission granted. Docking clamps released. [safetravels].")
|
||||
next()
|
||||
|
||||
/datum/atc_chatter/undockingdenied/squak()
|
||||
//Ship event: undocking request (denied)
|
||||
switch(phase)
|
||||
if(1)
|
||||
var/takeoff = pick("depart","launch")
|
||||
SSatc.msg("[callname], [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[comm_first_name]")
|
||||
next()
|
||||
else
|
||||
var/denialreason = pick("Security is requesting a full cargo inspection","Your ship has been impounded for multiple [pick("security","safety")] violations","Your ship is currently under quarantine lockdown","We have reason to believe there's an issue with your papers","Security personnel are currently searching for a fugitive and have ordered all outbound ships remain grounded until further notice")
|
||||
SSatc.msg("Negative [combined_first_name], request denied. [denialreason].")
|
||||
finish()
|
||||
96
code/modules/busy_space/chatter_police.dm
Normal file
96
code/modules/busy_space/chatter_police.dm
Normal file
@@ -0,0 +1,96 @@
|
||||
/datum/atc_chatter/policescan/squak()
|
||||
//Control scan event: soft outcome
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("[combined_first_name], [callname], your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.")
|
||||
next()
|
||||
if(2)
|
||||
var/confirm = pick("Understood","Roger that","Affirmative","Very well","Copy that")
|
||||
SSatc.msg("[confirm] [callname], holding position.","[comm_first_name]")
|
||||
next()
|
||||
if(3)
|
||||
SSatc.msg("Your compliance is appreciated, [combined_first_name]. Scan commencing.")
|
||||
next()
|
||||
if(4)
|
||||
var/complain = pick("I hope this doesn't take too long.","Can we hurry this up?","Make it quick.","This better not take too long.","Is this really necessary?","I'm sure you'll find everything to be in order, Control.")
|
||||
SSatc.msg(complain,"[comm_first_name]")
|
||||
next(10)
|
||||
else
|
||||
var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","You're clear, move along.","Apologies for the delay, you're clear.","Switch to channel [SSatc.sdfchannel] and await further instruction.")
|
||||
SSatc.msg("[combined_first_name], [callname]. Scan complete. [completed]")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/policeflee/squak()
|
||||
//Control scan event: hard outcome
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("Unknown [pick("ship","vessel","starship")], [callname], identify yourself and submit to a full inspection. Flying without an active transponder is a violation of interstellar shipping regulations.")
|
||||
next()
|
||||
if(2)
|
||||
var/uhoh = pick("No can do chief, we got places to be.","Sorry but we've got places to be.","Not happening.","Ah fuck, who ratted us out this time?!","You'll never take me alive!","Hey, I have a cloaking device! You can't see me!","I'm going to need to ask for a refund on that stealth drive...","I'm afraid I can't do that, Control.","Ah |hell|.","Fuck!","This isn't the ship you're looking for.","Well. This is awkward.","Uh oh.","I surrender!","Ah f- |ditch the containers!| +Now!+","Unless you have something a little +bigger+ in your torpedo tubes, we're |not| turning around!")
|
||||
SSatc.msg("[uhoh]","Unknown Vessel")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[using_map.starsys_name] Defense Control to all local assets: vector to interdict and detain [prefix], temporary callsign |[shipname]|. Control out.","[using_map.starsys_name] Defense Control")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/policeshipscan/squak()
|
||||
//SDF scan event: soft outcome
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("[combined_second_name], [combined_first_name], your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.","[comm_first_name]")
|
||||
next()
|
||||
if(2)
|
||||
var/confirm = pick("Understood","Roger that","Affirmative")
|
||||
SSatc.msg("[confirm] [combined_first_name], holding position.","[comm_second_name]")
|
||||
next()
|
||||
if(3)
|
||||
SSatc.msg("Your compliance is appreciated, [combined_second_name]. Scan commencing.","[comm_first_name]")
|
||||
next(2)
|
||||
if(4)
|
||||
var/complain = pick("I hope this doesn't take too long.","Can we hurry this up?","Make it quick.","This better not take too long.","Is this really necessary?","I'm sure you'll find everything to be in order, officer.")
|
||||
SSatc.msg(complain,"[comm_second_name]")
|
||||
next()
|
||||
else
|
||||
var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","You're clear. Move along.","Apologies for the delay, you're clear.","Switch to channel [SSatc.sdfchannel] and await further instruction.")
|
||||
SSatc.msg("[combined_second_name], [combined_first_name]. Scan complete. [completed]","[comm_first_name]")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/policeshipflee/squak()
|
||||
//SDF scan event: hard outcome
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("Unknown [pick("ship","vessel","starship")], [combined_second_name], identify yourself and submit to a full inspection. Flying without an active transponder is a violation of interstellar shipping regulations.","[comm_second_name]")
|
||||
next()
|
||||
if(2)
|
||||
var/uhoh = pick("No can do chief, we got places to be.","Sorry but we've got places to be.","Not happening.","Ah fuck, who ratted us out this time?!","You'll never take me alive!","Hey, I have a cloaking device! You can't see me!","I'm going to need to ask for a refund on that stealth drive...","I'm afraid I can't do that, |[shipname]|.","Ah |hell|.","Fuck!","This isn't the ship you're looking for.","Well. This is awkward.","Uh oh.","I surrender!","Ah f- |ditch the containers!| +Now!+","Unless you have something a little +bigger+ in your torpedo tubes, we're |not| turning around!")
|
||||
SSatc.msg("[uhoh]","Unknown Vessel")
|
||||
next()
|
||||
if(3)
|
||||
SSatc.msg("[using_map.starsys_name] Defense Control, [combined_second_name]. We have a [prefix] here, please advise.","[comm_second_name]")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("Defense Control copies, [combined_second_name], reinforcements are en route. Switch further communications to encrypted band [SSatc.sdfchannel].","[using_map.starsys_name] Defense Control")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/policeshipcombat/squak()
|
||||
//SDF scan event: engage primary in combat! fairly rare since it needs a pirate/vox + SDF roll
|
||||
switch(phase)
|
||||
if(1)
|
||||
var/battlestatus = pick("requesting reinforcements.","we need backup! Now!","holding steady.","we're holding our own for now.","we have them on the run.","they're trying to make a run for it!","we have them right where we want them.","we're badly outgunned!","we have them outgunned.","we're outnumbered here!","we have them outnumbered.","this'll be a cakewalk.",10;"notify their next of kin.")
|
||||
SSatc.msg("[using_map.starsys_name] Defense Control, [combined_second_name], engaging [combined_first_name] [pick("near route","in sector")] [rand(1,100)], [battlestatus]","[comm_second_name]")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[using_map.starsys_name] Defense Control copies, [combined_second_name]. Keep us updated.","[using_map.starsys_name] Defense Control")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/hostiledetected/squak()
|
||||
//DefCon event: hostile found
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("This is [using_map.starsys_name] Defense Control to all SDF assets. Priority update follows.","[using_map.starsys_name] Defense Control")
|
||||
next()
|
||||
else
|
||||
var/orders = pick("Engage on sight","Engage with caution","Engage with extreme prejudice","Engage at will","Search and destroy","Bring them in alive, if possible","Interdict and detain","Keep your eyes peeled","Bring them in, dead or alive","Stay alert")
|
||||
SSatc.msg("Be on the lookout for [short_first_name], last sighted [pick("near route","in sector","near sector")] [rand(1,100)]. [orders]. DefCon, out.","[using_map.starsys_name] Defense Control")
|
||||
finish()
|
||||
78
code/modules/busy_space/chatter_sdf.dm
Normal file
78
code/modules/busy_space/chatter_sdf.dm
Normal file
@@ -0,0 +1,78 @@
|
||||
/datum/atc_chatter/sdfpatrolupdate/squak()
|
||||
//SDF event: patrol update
|
||||
switch(phase)
|
||||
if(1)
|
||||
var/statusupdate = pick("nothing unusual so far","nothing of note","everything looks clear so far","ran off some [pick("pirates","scavengers")] near route [pick(1,100)], [pick("no","minor")] damage sustained, continuing patrol","situation normal, no suspicious activity yet","minor incident on route [pick(1,100)]","Code 7-X [pick("on route","in sector")] [pick(1,100)], situation is under control","seeing a lot of traffic on route [pick(1,100)]","caught a couple of smugglers [pick("on route","in sector")] [pick(1,100)]","sustained some damage in a skirmish just now, we're heading back for repairs")
|
||||
SSatc.msg("[using_map.starsys_name] Defense Control, [combined_first_name] reporting in, [statusupdate], over.","[comm_first_name]")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[using_map.starsys_name] Defense Control copies, [combined_first_name]. Keep us updated, out.","[using_map.starsys_name] Defense Control")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/sdfendingpatrol/squak()
|
||||
//SDF event: end patrol
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("[callname], [combined_first_name], returning from our system patrol route, requesting permission to [landing_short].","[comm_first_name]")
|
||||
next()
|
||||
if(2)
|
||||
SSatc.msg("[combined_first_name], [callname]. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.")
|
||||
next()
|
||||
else
|
||||
var/appreciation = pick("Copy","Understood","Affirmative","10-4","Roger that")
|
||||
var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.")
|
||||
SSatc.msg("[appreciation], [callname]. [dockingplan]","[comm_first_name]")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/sdfchatter
|
||||
VAR_PRIVATE/chain = null
|
||||
|
||||
/datum/atc_chatter/sdfchatter/squak()
|
||||
//SDF event: general chatter
|
||||
if(!chain)
|
||||
chain = pick("codecheck","commscheck")
|
||||
switch(chain)
|
||||
if("codecheck")
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("Check. Check. |Check|. Uhhh... check? Wait. Wait! Hold on. Yeah, okay, I gotta call this one in.","[comm_first_name]")
|
||||
next()
|
||||
if(2)
|
||||
SSatc.msg("[callname], confirm auth-code... [rand(1,9)][rand(1,9)][rand(1,9)]-[pick("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega")]?","[comm_first_name]")
|
||||
next()
|
||||
if(3)
|
||||
SSatc.msg("One moment...")
|
||||
next()
|
||||
if(4)
|
||||
SSatc.msg("Yeah, that code checks out [combined_first_name].")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("|(sigh)| Copy that Control. You! Move along!","[comm_first_name]")
|
||||
finish()
|
||||
if("commscheck")
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("Control this is [combined_first_name], we're getting some interference in our area. [pick("How's our line?","Do you read?","How copy, over?")]","[comm_first_name]")
|
||||
next()
|
||||
if(2)
|
||||
SSatc.msg("Control reads you loud and clear [combined_first_name].","[using_map.starsys_name] Defense Control")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[pick("Copy that","Thanks,","Roger that")] Control. [combined_first_name] out.","[comm_first_name]")
|
||||
finish()
|
||||
|
||||
/datum/atc_chatter/sdfbeginpatrol/squak()
|
||||
//SDF event: starting patrol
|
||||
switch(phase)
|
||||
if(1)
|
||||
var/takeoff = pick("depart","launch","take off","dust off")
|
||||
SSatc.msg("[callname], [combined_first_name], requesting permission to [takeoff] from [landing_zone] to begin system patrol.","[comm_first_name]")
|
||||
next()
|
||||
if(2)
|
||||
var/safetravels = pick("Fly safe out there","Good luck","Good hunting","Safe travels","Godspeed","Stars guide you")
|
||||
SSatc.msg("[combined_first_name], [callname]. Permission granted. Docking clamps released. [safetravels].")
|
||||
next()
|
||||
else
|
||||
var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too")
|
||||
SSatc.msg("[thanks], [callname]. This is [combined_first_name] beginning system patrol, out.","[comm_first_name]")
|
||||
finish()
|
||||
8
code/modules/busy_space/chatter_shiftend.dm
Normal file
8
code/modules/busy_space/chatter_shiftend.dm
Normal file
@@ -0,0 +1,8 @@
|
||||
/datum/atc_chatter/shift_end/squak()
|
||||
switch(phase)
|
||||
if(1)
|
||||
SSatc.msg("[using_map.shuttle_name], this is [using_map.dock_name] Control, you are cleared to complete routine transfer from [using_map.station_name] to [using_map.dock_name].")
|
||||
next()
|
||||
else
|
||||
SSatc.msg("[using_map.shuttle_name] departing [using_map.dock_name] for [using_map.station_name] on routine transfer route. Estimated time to arrival: ten minutes.","[using_map.shuttle_name]")
|
||||
finish()
|
||||
3
code/modules/busy_space/chatter_shiftstart.dm
Normal file
3
code/modules/busy_space/chatter_shiftstart.dm
Normal file
@@ -0,0 +1,3 @@
|
||||
/datum/atc_chatter/shift_start/squak()
|
||||
SSatc.msg("New shift beginning, resuming traffic control. This shift's Colony Frequencies are as follows: Emergency Responders: [SSatc.ertchannel]. Medical: [SSatc.medchannel]. Engineering: [SSatc.engchannel]. Security: [SSatc.secchannel]. System Defense: [SSatc.sdfchannel].")
|
||||
finish()
|
||||
Reference in New Issue
Block a user