mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 18:02:57 +00:00
Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into the-fuck-am-i-doing
This commit is contained in:
@@ -425,6 +425,7 @@ Example config:
|
||||
var/list/min_pop = Get(/datum/config_entry/keyed_list/min_pop)
|
||||
var/list/max_pop = Get(/datum/config_entry/keyed_list/max_pop)
|
||||
var/list/repeated_mode_adjust = Get(/datum/config_entry/number_list/repeated_mode_adjust)
|
||||
var/desired_chaos_level = 9 - SSpersistence.get_recent_chaos()
|
||||
for(var/T in gamemode_cache)
|
||||
var/datum/game_mode/M = new T()
|
||||
if(!(M.config_tag in modes))
|
||||
@@ -449,6 +450,17 @@ Example config:
|
||||
adjustment += repeated_mode_adjust[recent_round]
|
||||
recent_round = SSpersistence.saved_modes.Find(M.config_tag,recent_round+1,0)
|
||||
final_weight *= max(0,((100-adjustment)/100))
|
||||
if(Get(/datum/config_entry/flag/weigh_by_recent_chaos))
|
||||
var/chaos_level = M.get_chaos()
|
||||
var/exponent = Get(/datum/config_entry/number/chaos_exponent)
|
||||
var/delta = chaos_level - desired_chaos_level
|
||||
if(desired_chaos_level > 5)
|
||||
delta = abs(min(delta, 0))
|
||||
else if(desired_chaos_level < 5)
|
||||
delta = max(delta, 0)
|
||||
else
|
||||
delta = abs(delta)
|
||||
final_weight /= (delta + 1) ** exponent
|
||||
runnable_modes[M] = final_weight
|
||||
return runnable_modes
|
||||
|
||||
|
||||
@@ -7,6 +7,13 @@
|
||||
/datum/config_entry/keyed_list/probability/ValidateListEntry(key_name)
|
||||
return key_name in config.modes
|
||||
|
||||
/datum/config_entry/keyed_list/chaos_level
|
||||
key_mode = KEY_MODE_TEXT
|
||||
value_mode = VALUE_MODE_NUM
|
||||
|
||||
/datum/config_entry/keyed_list/chaos_level/ValidateListEntry(key_name)
|
||||
return key_name in config.modes
|
||||
|
||||
/datum/config_entry/keyed_list/max_pop
|
||||
key_mode = KEY_MODE_TEXT
|
||||
value_mode = VALUE_MODE_NUM
|
||||
@@ -596,3 +603,8 @@
|
||||
/// Dirtyness multiplier for making turfs dirty
|
||||
/datum/config_entry/number/turf_dirty_multiplier
|
||||
config_entry_value = 1
|
||||
|
||||
/datum/config_entry/flag/weigh_by_recent_chaos
|
||||
|
||||
/datum/config_entry/number/chaos_exponent
|
||||
config_entry_value = 1
|
||||
|
||||
Reference in New Issue
Block a user