Fixes dynamic

This commit is contained in:
keronshb
2021-09-23 19:38:15 -04:00
parent c8814e8cc8
commit c9697f4bbf
4 changed files with 18 additions and 3 deletions
@@ -102,8 +102,10 @@
indice_pop = min(requirements.len,round(population/pop_per_requirement)+1)
if(minimum_players > population)
SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to low pop")
return FALSE
if(maximum_players > 0 && population > maximum_players)
SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to high pop")
return FALSE
return (threat_level >= requirements[indice_pop])
@@ -156,6 +158,7 @@
/// IMPORTANT: If ready() returns TRUE, that means pre_execute() or execute() should never fail!
/datum/dynamic_ruleset/proc/ready(forced = 0)
if (required_candidates > candidates.len)
SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough candidates")
return FALSE
return TRUE
@@ -33,6 +33,7 @@
var/threat = round(mode.threat_level/10)
if (job_check < required_enemies[threat])
SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough enemy roles")
return FALSE
return ..()
@@ -54,6 +55,7 @@
name = "Syndicate Infiltrator"
antag_datum = /datum/antagonist/traitor
antag_flag = "traitor late"
antag_flag_override = ROLE_TRAITOR
protected_roles = list("Security Officer", "Warden", "Head of Personnel", "Detective", "Head of Security", "Captain")
restricted_roles = list("AI","Cyborg")
required_candidates = 1
@@ -73,7 +75,7 @@
persistent = TRUE
antag_datum = /datum/antagonist/rev/head
antag_flag = "rev head late"
antag_flag_override = "rev late"
antag_flag_override = ROLE_REV
restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director")
enemy_roles = list("AI", "Cyborg", "Security Officer","Detective","Head of Security", "Captain", "Warden")
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
@@ -149,6 +151,7 @@
name = "Heretic Smuggler"
antag_datum = /datum/antagonist/heretic
antag_flag = "heretic late"
antag_flag_override = ROLE_HERETIC
protected_roles = list("Security Officer", "Warden", "Head of Personnel", "Detective", "Head of Security", "Captain","Prisoner")
restricted_roles = list("AI","Cyborg")
required_candidates = 1
@@ -104,7 +104,7 @@
message_admins("Polling [possible_volunteers.len] players to apply for the [name] ruleset.")
log_game("DYNAMIC: Polling [possible_volunteers.len] players to apply for the [name] ruleset.")
candidates = pollGhostCandidates("The mode is looking for volunteers to become [antag_flag] for [name]", antag_flag, antag_flag_override ? antag_flag_override : antag_flag, poll_time = 300)
candidates = pollGhostCandidates("The mode is looking for volunteers to become [antag_flag] for [name]", antag_flag, be_special_flag = antag_flag_override ? antag_flag_override : antag_flag, poll_time = 300)
if(!candidates || candidates.len <= 0)
mode.dynamic_log("The ruleset [name] received no applications.")
@@ -299,6 +299,7 @@
name = "Wizard"
antag_datum = /datum/antagonist/wizard
antag_flag = "wizard mid"
antag_flag_override = ROLE_WIZARD
enemy_roles = list("Security Officer","Detective","Head of Security", "Captain")
required_enemies = list(2,2,1,1,1,1,1,0,0,0)
required_candidates = 1
@@ -330,6 +331,7 @@
name = "Nuclear Assault"
antag_flag = "nukie mid"
antag_datum = /datum/antagonist/nukeop
antag_flag_override = ROLE_OPERATIVE
enemy_roles = list("AI", "Cyborg", "Security Officer", "Warden","Detective","Head of Security", "Captain")
required_enemies = list(3,3,3,3,3,2,1,1,0,0)
required_candidates = 5
@@ -33,6 +33,13 @@
. = ..()
GLOB.new_player_list += src
/mob/dead/new_player/Destroy()
GLOB.new_player_list -= src
return ..()
/mob/dead/new_player/prepare_huds()
return
@@ -391,7 +398,7 @@
var/id_max = text2num(href_list["maxid"])
if( (id_max - id_min) > 100 ) //Basic exploit prevention
//(protip, this stops no exploits)
//(protip, this stops no exploits)
to_chat(usr, "The option ID difference is too big. Please contact administration or the database admin.")
return