-
Notifications
You must be signed in to change notification settings - Fork 0
/
control.lua
147 lines (120 loc) · 4.11 KB
/
control.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
UpdateSetting = function(settingName)
if settingName == "starting_evolution_percentage" or settingName == nil then
UpdatedStartingEvolutionSetting()
end
if settingName == "maximum_evolution_percentage" or settingName == nil then
UpdatedMaximumEvolutionSetting()
end
if settingName == "pathfinder_max_long_paths" or settingName == nil then
UpdatePathfindingMaxLongPaths()
end
if settingName == "pathfinder_max_short_paths" or settingName == nil then
UpdatePathfindingMaxShortPaths()
end
if settingName == "pathfinder_max_steps_worked_per_tick" or settingName == nil then
UpdatePathfindingMaxStepsPerTick()
end
if settingName == "maximum_gathering_unit_groups" or settingName == nil then
UpdateMaxGatheringUnitGroups()
end
if settingName == "maximum_unit_group_size" or settingName == nil then
UpdateMaxUnitGroupSize()
end
end
UpdatedStartingEvolutionSetting = function()
local startingEvolutionPercentage = tonumber(settings.global["starting_evolution_percentage"].value)
if startingEvolutionPercentage > -1 then
ModSettings.startingEvolutionFloat = startingEvolutionPercentage / 100
else
ModSettings.startingEvolutionFloat = -1
end
CorrectMinEvolution()
end
UpdatedMaximumEvolutionSetting = function()
local maximumEvolutionPercentage = tonumber(settings.global["maximum_evolution_percentage"].value)
if maximumEvolutionPercentage > -1 then
ModSettings.maxEvolutionFloat = maximumEvolutionPercentage / 100
else
ModSettings.maxEvolutionFloat = -1
end
CorrectMaxEvolution()
end
UpdatePathfindingMaxLongPaths = function()
local longPathSetting = tonumber(settings.global["pathfinder_max_long_paths"].value)
if longPathSetting > -1 then
game.map_settings.path_finder.max_clients_to_accept_any_new_request = longPathSetting
end
end
UpdatePathfindingMaxShortPaths = function()
local shortPathSetting = tonumber(settings.global["pathfinder_max_short_paths"].value)
if shortPathSetting > -1 then
game.map_settings.path_finder.max_clients_to_accept_short_new_request = shortPathSetting
end
end
UpdatePathfindingMaxStepsPerTick = function()
local maxStepsSetting = tonumber(settings.global["pathfinder_max_steps_worked_per_tick"].value)
if maxStepsSetting > -1 then
game.map_settings.path_finder.max_steps_worked_per_tick = maxStepsSetting
end
end
UpdateMaxGatheringUnitGroups = function()
local gatheringUnitsSetting = tonumber(settings.global["maximum_gathering_unit_groups"].value)
if gatheringUnitsSetting > -1 then
game.map_settings.unit_group.max_gathering_unit_groups = gatheringUnitsSetting
end
end
UpdateMaxUnitGroupSize = function()
local unitGroupSizeSetting = tonumber(settings.global["maximum_unit_group_size"].value)
if unitGroupSizeSetting > -1 then
game.map_settings.unit_group.max_unit_group_size = unitGroupSizeSetting
end
end
CorrectEvolution = function()
CorrectMinEvolution()
CorrectMaxEvolution()
end
CorrectMinEvolution = function()
if ModSettings.startingEvolutionFloat > -1 and game.forces.enemy.evolution_factor < ModSettings.startingEvolutionFloat then
game.forces.enemy.evolution_factor = ModSettings.startingEvolutionFloat
end
end
CorrectMaxEvolution = function()
if ModSettings.maxEvolutionFloat > -1 and game.forces.enemy.evolution_factor > ModSettings.maxEvolutionFloat then
game.forces.enemy.evolution_factor = ModSettings.maxEvolutionFloat
end
end
CreateGlobals = function()
if global.ModSettings == nil then global.ModSettings = {} end
end
ReferenceGlobals = function()
ModSettings = global.ModSettings
end
OnStartup = function()
CreateGlobals()
ReferenceGlobals()
UpdateSetting(nil)
end
OnLoad = function()
ReferenceGlobals()
end
On10SecondUpdate = function()
CorrectEvolution()
end
OnSettingChanged = function(event)
UpdateSetting(event.setting)
end
script.on_init(function()
OnStartup()
end)
script.on_load(function()
OnLoad()
end)
script.on_nth_tick(600, function() On10SecondUpdate() end)
script.on_event(defines.events.on_runtime_mod_setting_changed, OnSettingChanged)
script.on_configuration_changed(function()
OnStartup()
end)
Log = function(text)
game.print(text)
game.write_file("Extra_Biter_Control_logOutput.txt", tostring(text) .. "\r\n", true)
end