Unapologetic Big Brother Buffs (#4066)

Replaces the subversive elements report with a new report that details various metrics such as loyal crew, opposed crew, opposed departments, and a percentage of crew supportive of NT actions.
This commit is contained in:
LordFowl
2018-01-07 20:53:31 -05:00
committed by Lohikar
parent 79564fb7d5
commit 93cbf1ec56
2 changed files with 141 additions and 13 deletions

View File

@@ -397,8 +397,8 @@ var/global/list/additional_antag_types = list()
/datum/game_mode/proc/send_intercept() /datum/game_mode/proc/send_intercept()
var/intercepttext = "<FONT size = 3><B>Cent. Com. Update</B> Requested status information:</FONT><HR>" var/intercepttext = "<center><img src = ntlogo.png></center><BR><FONT size = 3><BR><B>Cent. Com. Update</B><BR>FOR YOUR EYES ONLY:</FONT><HR>"
intercepttext += "<B> In case you have misplaced your copy, attached is a list of personnel whom reliable sources&trade; suspect may be affiliated with subversive elements:</B><br>" intercepttext += "<B><font face='Courier New'>The personnel listed below have been marked at-risk elements that Cent. Com. has deemed priority handling for the current shift:</B><br>"
var/list/disregard_roles = list() var/list/disregard_roles = list()
for(var/antag_type in all_antag_types) for(var/antag_type in all_antag_types)
@@ -407,33 +407,124 @@ var/global/list/additional_antag_types = list()
disregard_roles |= antag.role_text disregard_roles |= antag.role_text
var/list/suspects = list() var/list/suspects = list()
var/list/loyalists
var/list/repeat_offenders = list()
var/eng_suspect = 0
var/eng = 0
var/sec_suspect = 0
var/sec = 0
var/med_suspect = 0
var/med = 0
var/sci_suspect = 0
var/sci = 0
var/civ_suspect = 0
var/civ = 0
var/loyal_crew = 0
var/total_crew = 0
var/evil_department
for(var/mob/living/carbon/human/man in player_list) if(man.client && man.mind) for(var/mob/living/carbon/human/man in player_list) if(man.client && man.mind)
// NT relation option // NT relation option
var/special_role = man.mind.special_role var/special_role = man.mind.special_role
var/datum/antagonist/special_role_data = get_antag_data(special_role) var/datum/antagonist/special_role_data = get_antag_data(special_role)
total_crew += 1
if (special_role in disregard_roles) if (special_role in disregard_roles)
continue continue
else if(man.client.prefs.nanotrasen_relation == COMPANY_OPPOSED && prob(50) || \ else if(man.mind.assigned_job)
man.client.prefs.nanotrasen_relation == COMPANY_SKEPTICAL && prob(20)) var/datum/job/job = man.mind.assigned_job
var/evil = 0
if(man.client.prefs.nanotrasen_relation == COMPANY_OPPOSED || man.client.prefs.nanotrasen_relation == COMPANY_SKEPTICAL)
evil = 1
switch(job.department)
if("Civilian" || "Cargo")
civ += 1
if(evil)
civ_suspect += 1
if("Engineering")
eng += 1
if(evil)
eng_suspect += 1
if("Security")
sec += 1
if(evil)
sec_suspect += 1
if("Medical")
med +=1
if(evil)
med_suspect += 1
if("Science")
sci += 1
if(evil)
sci_suspect += 1
else if(man.client.prefs.nanotrasen_relation == COMPANY_OPPOSED && prob(25))
suspects += man suspects += man
else if(man.client.prefs.nanotrasen_relation == COMPANY_LOYAL || man.client.prefs.nanotrasen_relation == COMPANY_SUPPORTATIVE)
loyal_crew += 1
if(prob(25))
loyalists += man
// Antags // Antags
else if(special_role_data && prob(special_role_data.suspicion_chance)) else if(special_role_data && prob(special_role_data.suspicion_chance))
suspects += man suspects += man
if(man.incidents.len >= 3)
repeat_offenders += man
// Some poor people who were just in the wrong place at the wrong time.. var/civ_ratio = 0
else if(prob(10)) if(civ)
suspects += man civ_ratio = civ_suspect / civ
var/eng_ratio = 0
if(eng)
eng_ratio = eng_suspect / eng
var/sec_ratio = 0
if(sec)
sec_ratio = sec_suspect / sec
var/med_ratio = 0
if(med)
med_ratio = med_suspect / med
var/sci_ratio = 0
if(sci)
sci_ratio = sci_suspect / sci
for(var/mob/M in suspects) var/most_evil = max(civ_ratio, eng_ratio, sec_ratio, med_ratio, sci_ratio)
if(most_evil >= 0.5)
if(most_evil == civ_ratio)
evil_department = "Civilian & Supply"
else if(most_evil == eng_ratio)
evil_department = "Engineering"
else if(most_evil == sec_ratio)
evil_department = "Security"
else if(most_evil == med_ratio)
evil_department = "Medical"
else if(most_evil == sci_ratio)
evil_department = "Science"
var/business_jargon = list("Collated incident reports","Assembled peer-reviews","Persistently negative staff reviews","Collected shift logs","Accumulated negative reports","Analyzed shift data")
var/mean_words = list("has expressed consistent disapproval with the network", "is no longer working efficiently","has gone on record against NanoTrasen practices","is spreading minor dissent in response to recent NanoTrasen behavior","has expressed subversive intent","is unhappy with their employment package")
for(var/mob/living/carbon/human/M in suspects)
if(player_is_antag(M.mind, only_offstation_roles = 1)) if(player_is_antag(M.mind, only_offstation_roles = 1))
continue continue
switch(rand(1, 100)) intercepttext += " + [pick(business_jargon)] indicate that [M.mind.assigned_role] [M.name] [pick(mean_words)].<br>"
if(1 to 50) intercepttext += "Cent. Com recommends coordinating with human resources to resolve any issues with employment.<br>"
intercepttext += "Someone with the job of <b>[M.mind.assigned_role]</b> <br>"
else intercepttext += "<br><B>The personnel listed below possess three or more offenses listed on record:</B>"
intercepttext += "<b>[M.name]</b>, the <b>[M.mind.assigned_role]</b> <br>" for(var/mob/living/carbon/human/M in repeat_offenders)
intercepttext += " + [M.mind.assigned_role] [M.name], [M.incidents.len] offenses.<br>"
intercepttext += "Cent. Com recommends coordinating with internal security to monitor and rehabilitate these personnel.<br>"
intercepttext += "<br><B>The personnel listed below have been indicated as particularly loyal to NanoTrasen:</B>"
for(var/mob/living/carbon/human/M in loyalists)
intercepttext += " + [M.mind.assigned_role] [M.name].<br>"
intercepttext += "Cent. Com recommends coordinating with human resources to reward and further motivate these personnel for their loyalty.<br>"
if(evil_department)
intercepttext += "<br>[pick(business_jargon)] indicate that a majority of the [evil_department] department [pick(mean_words)]. This department has been marked at-risk and Cent. Com. recommends immediate action before the situation worsens.<br>"
if(total_crew)
intercepttext += "<br>Data collected and analyzed by A.L.I.C.E. indicate that [round((loyal_crew/total_crew)*100)]% of the current crew detail are supportive of NanoTrasen actions. Cent. Com. implores the current Head of Staff detail to increase this percentage.<br>"
intercepttext += "<hr> </font>Respectfully,<br><i>Quix Repi'Weish</i>, Chief Personnel Director"
//New message handling //New message handling
post_comm_message("Cent. Com. Status Summary", intercepttext) post_comm_message("Cent. Com. Status Summary", intercepttext)

View File

@@ -0,0 +1,37 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# maptweak
# spellcheck (typo fixes)
# experiment
# balance
#################################
# Your name.
author: LordFowl
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
changes:
- tweak: "NanoTrasen has discontinued their subversive elements report and has replace it with a priority report on various other crew metrics."