diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm index 36faa61759..166e6653c8 100644 --- a/code/controllers/configuration/config_entry.dm +++ b/code/controllers/configuration/config_entry.dm @@ -194,18 +194,18 @@ continue_check_value = new_value if(VALUE_MODE_NUM_LIST) // this is all copy+pasted from number list up there, but it's super basic so I don't see it being changed soon - var/list/new_list - var/list/values = splittext(str_val," ") + var/list/new_list = list() + var/list/values = splittext(key_value," ") for(var/I in values) var/temp = text2num(I) if(isnull(temp)) log_admin("invalid number list entry in [key_name]: [I]") - return FALSE + continue_check_value = FALSE new_list += temp - if(!(new_list.len)) // - log_admin("empty number list for [key_name]") - return FALSE new_value = new_list + log_admin(new_list) + continue_check_value = new_list.len + log_admin(continue_check_value) if(continue_check_value && continue_check_key && ValidateListEntry(new_key, new_value)) config_entry_value[new_key] = new_value return TRUE diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets.dm b/code/game/gamemodes/dynamic/dynamic_rulesets.dm index fd097d7cf1..011b6ec251 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets.dm @@ -75,7 +75,7 @@ weight = weights[config_tag] if(config_tag in costs) cost = costs[config_tag] - if(config_tag in requirements) + if(config_tag in requirementses) requirements = requirementses[config_tag] if(config_tag in high_population_requirements) high_population_requirement = high_population_requirements[config_tag] diff --git a/config/game_options.txt b/config/game_options.txt index 60997ea917..eec7d0fb53 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -273,122 +273,122 @@ DYNAMIC_POP_PER_REQUIREMENT 6 ## 1 -> 9, probability for this rule to be picked against other rules. ## Note that requirements must also be met, and some requirements are impossible to meet. -DYNAMIC_WEIGHT TRAITOR,5 -DYNAMIC_WEIGHT TRAITORBRO,4 -DYNAMIC_WEIGHT CHANGELING,3 -DYNAMIC_WEIGHT WIZARD,1 -DYNAMIC_WEIGHT CULT,3 -DYNAMIC_WEIGHT NUCLEAR,3 -DYNAMIC_WEIGHT REVOLUTION,2 +DYNAMIC_WEIGHT TRAITOR 5 +DYNAMIC_WEIGHT TRAITORBRO 4 +DYNAMIC_WEIGHT CHANGELING 3 +DYNAMIC_WEIGHT WIZARD 1 +DYNAMIC_WEIGHT CULT 3 +DYNAMIC_WEIGHT NUCLEAR 3 +DYNAMIC_WEIGHT REVOLUTION 2 # All below are impossible-by-default -DYNAMIC_WEIGHT EXTENDED,3 -DYNAMIC_WEIGHT CLOCKWORK_CULT,3 -DYNAMIC_WEIGHT CLOWNOPS,3 -DYNAMIC_WEIGHT DEVIL,3 -DYNAMIC_WEIGHT MONKEY,3 -DYNAMIC_WEIGHT METEOR,3 +DYNAMIC_WEIGHT EXTENDED 3 +DYNAMIC_WEIGHT CLOCKWORK_CULT 3 +DYNAMIC_WEIGHT CLOWNOPS 3 +DYNAMIC_WEIGHT DEVIL 3 +DYNAMIC_WEIGHT MONKEY 3 +DYNAMIC_WEIGHT METEOR 3 ## Midround antags -DYNAMIC_WEIGHT MIDROUND_TRAITOR,7 -DYNAMIC_WEIGHT MALF_AI,3 -DYNAMIC_WEIGHT MIDROUND_WIZARD,1 -DYNAMIC_WEIGHT MIDROUND_NUCLEAR,5 -DYNAMIC_WEIGHT BLOB,4 -DYNAMIC_WEIGHT XENOS,3 -DYNAMIC_WEIGHT NIGHTMARE,3 +DYNAMIC_WEIGHT MIDROUND_TRAITOR 7 +DYNAMIC_WEIGHT MALF_AI 3 +DYNAMIC_WEIGHT MIDROUND_WIZARD 1 +DYNAMIC_WEIGHT MIDROUND_NUCLEAR 5 +DYNAMIC_WEIGHT BLOB 4 +DYNAMIC_WEIGHT XENOS 3 +DYNAMIC_WEIGHT NIGHTMARE 3 ## Latejoin antags -DYNAMIC_WEIGHT LATEJOIN_TRAITOR,7 -DYNAMIC_WEIGHT LATEJOIN_REVOLUTION,2 +DYNAMIC_WEIGHT LATEJOIN_TRAITOR 7 +DYNAMIC_WEIGHT LATEJOIN_REVOLUTION 2 ## Threat cost. This is decreased from the mode's threat when the rule is executed. -DYNAMIC_COST TRAITOR,10 -DYNAMIC_COST TRAITORBRO,10 -DYNAMIC_COST CHANGELING,30 -DYNAMIC_COST WIZARD,30 -DYNAMIC_COST CULT,30 -DYNAMIC_COST NUCLEAR,40 -DYNAMIC_COST REVOLUTION,35 +DYNAMIC_COST TRAITOR 10 +DYNAMIC_COST TRAITORBRO 10 +DYNAMIC_COST CHANGELING 30 +DYNAMIC_COST WIZARD 30 +DYNAMIC_COST CULT 30 +DYNAMIC_COST NUCLEAR 40 +DYNAMIC_COST REVOLUTION 35 # All below are impossible-by-default -DYNAMIC_COST EXTENDED,0 -DYNAMIC_COST CLOCKWORK_CULT,0 -DYNAMIC_COST CLOWNOPS,40 -DYNAMIC_COST DEVIL,0 -DYNAMIC_COST MONKEY,0 -DYNAMIC_COST METEOR,0 +DYNAMIC_COST EXTENDED 0 +DYNAMIC_COST CLOCKWORK_CULT 0 +DYNAMIC_COST CLOWNOPS 40 +DYNAMIC_COST DEVIL 0 +DYNAMIC_COST MONKEY 0 +DYNAMIC_COST METEOR 0 ## Midround antags -DYNAMIC_COST MIDROUND_TRAITOR,10 -DYNAMIC_COST MALF_AI,35 -DYNAMIC_COST MIDROUND_WIZARD,20 -DYNAMIC_COST MIDROUND_NUCLEAR,35 -DYNAMIC_COST BLOB,10 -DYNAMIC_COST XENOS,10 -DYNAMIC_COST NIGHTMARE,10 +DYNAMIC_COST MIDROUND_TRAITOR 10 +DYNAMIC_COST MALF_AI 35 +DYNAMIC_COST MIDROUND_WIZARD 20 +DYNAMIC_COST MIDROUND_NUCLEAR 35 +DYNAMIC_COST BLOB 10 +DYNAMIC_COST XENOS 10 +DYNAMIC_COST NIGHTMARE 10 ## Latejoin antags -DYNAMIC_COST LATEJOIN_TRAITOR,5 -DYNAMIC_COST LATEJOIN_REVOLUTION,20 +DYNAMIC_COST LATEJOIN_TRAITOR 5 +DYNAMIC_COST LATEJOIN_REVOLUTION 20 ## Rule will not be generated with threat levels below requirement at a pop value. Pop values are determined by dynamic's pop-per-requirement. -## By default, it's 0-5, 6-11, 12-17, 18-23, 24-29, 30-35, 36-41, 42-47, 48-53, 54+. +## By default it's 0-5, 6-11, 12-17, 18-23, 24-29, 30-35, 36-41, 42-47, 48-53, 54+. ## This means that 40 30 30 20 20 20 15 15 15 10 will not generate below 40 at 0-5, 30 at 6-11 etc. -DYNAMIC_REQUIREMENTS TRAITOR,10 10 10 10 10 10 10 10 10 10 -DYNAMIC_REQUIREMENTS TRAITORBRO,80 70 60 50 40 20 20 10 10 10 -DYNAMIC_REQUIREMENTS CHANGELING,90 90 70 40 30 20 10 10 10 10 -DYNAMIC_REQUIREMENTS WIZARD,100 90 80 60 40 30 10 10 10 10 -DYNAMIC_REQUIREMENTS CULT,90 90 90 80 60 40 30 20 10 10 -DYNAMIC_REQUIREMENTS NUCLEAR,101 101 70 40 30 20 10 10 10 10 -DYNAMIC_REQUIREMENTS REVOLUTION,35 +DYNAMIC_REQUIREMENTS TRAITOR 10 10 10 10 10 10 10 10 10 10 +DYNAMIC_REQUIREMENTS TRAITORBRO 40 30 30 20 20 15 15 15 10 10 +DYNAMIC_REQUIREMENTS CHANGELING 80 70 60 50 40 20 20 10 10 10 +DYNAMIC_REQUIREMENTS WIZARD 90 90 70 40 30 20 10 10 10 10 +DYNAMIC_REQUIREMENTS CULT 100 90 80 60 40 30 10 10 10 10 +DYNAMIC_REQUIREMENTS NUCLEAR 90 90 90 80 60 40 30 20 10 10 +DYNAMIC_REQUIREMENTS REVOLUTION 101 101 70 40 30 20 10 10 10 10 # All below are impossible-by-default -DYNAMIC_REQUIREMENTS EXTENDED,101 101 101 101 101 101 101 101 101 101 -DYNAMIC_REQUIREMENTS CLOCKWORK_CULT,101 101 101 101 101 101 101 101 101 101 -DYNAMIC_REQUIREMENTS CLOWNOPS,101 101 101 101 101 101 101 101 101 101 -DYNAMIC_REQUIREMENTS DEVIL,101 101 101 101 101 101 101 101 101 101 -DYNAMIC_REQUIREMENTS MONKEY,101 101 101 101 101 101 101 101 101 101 -DYNAMIC_REQUIREMENTS METEOR,101 101 101 101 101 101 101 101 101 101 +DYNAMIC_REQUIREMENTS EXTENDED 101 101 101 101 101 101 101 101 101 101 +DYNAMIC_REQUIREMENTS CLOCKWORK_CULT 101 101 101 101 101 101 101 101 101 101 +DYNAMIC_REQUIREMENTS CLOWNOPS 101 101 101 101 101 101 101 101 101 101 +DYNAMIC_REQUIREMENTS DEVIL 101 101 101 101 101 101 101 101 101 101 +DYNAMIC_REQUIREMENTS MONKEY 101 101 101 101 101 101 101 101 101 101 +DYNAMIC_REQUIREMENTS METEOR 101 101 101 101 101 101 101 101 101 101 ## Midround antags -DYNAMIC_REQUIREMENTS MIDROUND_TRAITOR,50 40 30 20 10 10 10 10 10 10 -DYNAMIC_REQUIREMENTS MALF_AI,101 101 80 70 60 60 50 50 40 40 -DYNAMIC_REQUIREMENTS MIDROUND_WIZARD,90 90 70 40 30 20 10 10 10 10 -DYNAMIC_REQUIREMENTS MIDROUND_NUCLEAR,90 90 90 80 60 40 30 20 10 10 -DYNAMIC_REQUIREMENTS BLOB,101 101 101 80 60 50 30 20 10 10 -DYNAMIC_REQUIREMENTS XENOS,101 101 101 70 50 40 20 15 10 10 -DYNAMIC_REQUIREMENTS NIGHTMARE,101 101 101 70 50 40 20 15 10 10 +DYNAMIC_REQUIREMENTS MIDROUND_TRAITOR 50 40 30 20 10 10 10 10 10 10 +DYNAMIC_REQUIREMENTS MALF_AI 101 101 80 70 60 60 50 50 40 40 +DYNAMIC_REQUIREMENTS MIDROUND_WIZARD 90 90 70 40 30 20 10 10 10 10 +DYNAMIC_REQUIREMENTS MIDROUND_NUCLEAR 90 90 90 80 60 40 30 20 10 10 +DYNAMIC_REQUIREMENTS BLOB 101 101 101 80 60 50 30 20 10 10 +DYNAMIC_REQUIREMENTS XENOS 101 101 101 70 50 40 20 15 10 10 +DYNAMIC_REQUIREMENTS NIGHTMARE 101 101 101 70 50 40 20 15 10 10 ## Latejoin antags -DYNAMIC_REQUIREMENTS LATEJOIN_TRAITOR,40 30 20 10 10 10 10 10 10 10 -DYNAMIC_REQUIREMENTS LATEJOIN_REVOLUTION,101 101 70 40 30 20 20 20 20 20 +DYNAMIC_REQUIREMENTS LATEJOIN_TRAITOR 40 30 20 10 10 10 10 10 10 10 +DYNAMIC_REQUIREMENTS LATEJOIN_REVOLUTION 101 101 70 40 30 20 20 20 20 20 ## An alternative, static requirement used instead when pop is over mode's high_pop_limit. -DYNAMIC_HIGH_POPULATION_REQUIREMENT TRAITOR,10 -DYNAMIC_HIGH_POPULATION_REQUIREMENT TRAITORBRO,15 -DYNAMIC_HIGH_POPULATION_REQUIREMENT CHANGELING,10 -DYNAMIC_HIGH_POPULATION_REQUIREMENT WIZARD,10 -DYNAMIC_HIGH_POPULATION_REQUIREMENT CULT,10 -DYNAMIC_HIGH_POPULATION_REQUIREMENT NUCLEAR,10 -DYNAMIC_HIGH_POPULATION_REQUIREMENT REVOLUTION,10 +DYNAMIC_HIGH_POPULATION_REQUIREMENT TRAITOR 10 +DYNAMIC_HIGH_POPULATION_REQUIREMENT TRAITORBRO 15 +DYNAMIC_HIGH_POPULATION_REQUIREMENT CHANGELING 10 +DYNAMIC_HIGH_POPULATION_REQUIREMENT WIZARD 10 +DYNAMIC_HIGH_POPULATION_REQUIREMENT CULT 10 +DYNAMIC_HIGH_POPULATION_REQUIREMENT NUCLEAR 10 +DYNAMIC_HIGH_POPULATION_REQUIREMENT REVOLUTION 10 # All below are impossible-by-default -DYNAMIC_HIGH_POPULATION_REQUIREMENT EXTENDED,101 -DYNAMIC_HIGH_POPULATION_REQUIREMENT CLOCKWORK_CULT,101 -DYNAMIC_HIGH_POPULATION_REQUIREMENT CLOWNOPS,101 -DYNAMIC_HIGH_POPULATION_REQUIREMENT DEVIL,101 -DYNAMIC_HIGH_POPULATION_REQUIREMENT MONKEY,101 -DYNAMIC_HIGH_POPULATION_REQUIREMENT METEOR,101 +DYNAMIC_HIGH_POPULATION_REQUIREMENT EXTENDED 101 +DYNAMIC_HIGH_POPULATION_REQUIREMENT CLOCKWORK_CULT 101 +DYNAMIC_HIGH_POPULATION_REQUIREMENT CLOWNOPS 101 +DYNAMIC_HIGH_POPULATION_REQUIREMENT DEVIL 101 +DYNAMIC_HIGH_POPULATION_REQUIREMENT MONKEY 101 +DYNAMIC_HIGH_POPULATION_REQUIREMENT METEOR 101 ## Midround antags -DYNAMIC_HIGH_POPULATION_REQUIREMENT MIDROUND_TRAITOR,10 -DYNAMIC_HIGH_POPULATION_REQUIREMENT MALF_AI,35 -DYNAMIC_HIGH_POPULATION_REQUIREMENT MIDROUND_WIZARD,50 -DYNAMIC_HIGH_POPULATION_REQUIREMENT MIDROUND_NUCLEAR,10 -DYNAMIC_HIGH_POPULATION_REQUIREMENT BLOB,50 -DYNAMIC_HIGH_POPULATION_REQUIREMENT XENOS,50 -DYNAMIC_HIGH_POPULATION_REQUIREMENT NIGHTMARE,50 +DYNAMIC_HIGH_POPULATION_REQUIREMENT MIDROUND_TRAITOR 10 +DYNAMIC_HIGH_POPULATION_REQUIREMENT MALF_AI 35 +DYNAMIC_HIGH_POPULATION_REQUIREMENT MIDROUND_WIZARD 50 +DYNAMIC_HIGH_POPULATION_REQUIREMENT MIDROUND_NUCLEAR 10 +DYNAMIC_HIGH_POPULATION_REQUIREMENT BLOB 50 +DYNAMIC_HIGH_POPULATION_REQUIREMENT XENOS 50 +DYNAMIC_HIGH_POPULATION_REQUIREMENT NIGHTMARE 50 ## Latejoin antags -DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_TRAITOR,10 -DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_REVOLUTION,50 +DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_TRAITOR 10 +DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_REVOLUTION 50 ## AI ###