Merge pull request #2816 from VOREStation/aro-ratio

Allows setting/enforcing an assistant ratio
This commit is contained in:
Arokha Sieyes
2018-01-21 22:13:33 -05:00
committed by GitHub
4 changed files with 39 additions and 0 deletions
+1
View File
@@ -103,6 +103,7 @@ var/list/admin_verbs_admin = list(
/datum/admins/proc/paralyze_mob,
/client/proc/fixatmos,
/datum/admins/proc/quick_nif, //VOREStation Add,
/datum/admins/proc/assistant_ratio, //VOREStation Add,
/datum/admins/proc/sendFax
)
+15
View File
@@ -30,3 +30,18 @@
log_and_message_admins("[key_name(src)] Quick NIF'd [H.real_name].")
feedback_add_details("admin_verb","QNIF") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/admins/proc/assistant_ratio()
set category = "Admin"
set name = "Toggle Asst. Ratio"
set desc = "Toggles the assistant ratio enforcement on/off."
if(!check_rights(R_ADMIN))
return
if(isnull(config.assistants_ratio))
to_chat(usr,"<span class='warning'>Assistant ratio enforcement isn't even turned on...</span>")
return
config.assistants_ratio *= -1
to_chat(usr,"<span class='notice'>Assistant ratio enforcement now [config.assistants_ratio > 0 ? "<b>en</b>abled" : "<b>dis</b>abled"].</span>")
@@ -47,6 +47,22 @@
pass = FALSE
to_chat(src,"<span class='warning'>Your custom species is not playable. Reconfigure your traits on the VORE tab.</span>")
//Assistant ratio enforcement
if (config.assistants_ratio > 0) //Stored as a negative number when inactive by admin verb
var/nonassistants = 0
var/assistants = 0
for(var/job in job_master.occupations)
var/datum/job/J = job
if(istype(J,/datum/job/assistant))
assistants += J.current_positions
else
nonassistants += J.current_positions
if(assistants != 0 && assistants >= config.assistants_assured && nonassistants/assistants < config.assistants_ratio)
pass = FALSE
to_chat(src,"There are currently [assistants] assistants, and [nonassistants] normal employees, while we enforce a specific ratio. Please join as a job instead of assistant.")
//Final popup notice
if (!pass)
alert(src,"There were problems with spawning your character. Check your message log for details.","Error","OK")