mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-01-10 00:43:27 +02:00
00e1f84dad
biter raffle replaced outposts are no longer safe attack group strength is reduced up to 50% for far away outposts biters seek a random target as side target, before making their way to the silo side targets are more likely chosen near the center of the map variety in unit group types (biter only, spitters only, mixed) unit groups spawn more close to their nests
219 lines
7.8 KiB
Lua
219 lines
7.8 KiB
Lua
local Public = {}
|
|
|
|
function Public.settings()
|
|
global.gui_refresh_delay = 0
|
|
global.game_lobby_active = true
|
|
global.bb_debug = false
|
|
global.combat_balance = {}
|
|
|
|
global.bb_settings = {
|
|
--TEAM SETTINGS--
|
|
["team_balancing"] = true, --Should players only be able to join a team that has less or equal members than the opposing team?
|
|
["only_admins_vote"] = false, --Are only admins able to vote on the global difficulty?
|
|
|
|
--GENERAL SETTINGS--
|
|
["blueprint_library_importing"] = false, --Allow the importing of blueprints from the blueprint library?
|
|
["blueprint_string_importing"] = false, --Allow the importing of blueprints via blueprint strings?
|
|
}
|
|
end
|
|
|
|
function Public.surface()
|
|
--Terrain Source Surface
|
|
local map_gen_settings = {}
|
|
map_gen_settings.seed = math.random(1, 99999999)
|
|
map_gen_settings.water = math.random(15, 65) * 0.01
|
|
map_gen_settings.starting_area = 2.5
|
|
map_gen_settings.terrain_segmentation = math.random(30, 40) * 0.1
|
|
map_gen_settings.cliff_settings = {cliff_elevation_interval = 0, cliff_elevation_0 = 0}
|
|
map_gen_settings.autoplace_controls = {
|
|
["coal"] = {frequency = 2.5, size = 0.65, richness = 0.5},
|
|
["stone"] = {frequency = 2.5, size = 0.65, richness = 0.5},
|
|
["copper-ore"] = {frequency = 3.5, size = 0.65, richness = 0.5},
|
|
["iron-ore"] = {frequency = 3.5, size = 0.65, richness = 0.5},
|
|
["uranium-ore"] = {frequency = 2, size = 1, richness = 1},
|
|
["crude-oil"] = {frequency = 3, size = 1, richness = 0.75},
|
|
["trees"] = {frequency = math.random(7, 22) * 0.1, size = math.random(7, 22) * 0.1, richness = math.random(1, 10) * 0.1},
|
|
["enemy-base"] = {frequency = 0, size = 0, richness = 0}
|
|
}
|
|
game.create_surface("bb_source", map_gen_settings)
|
|
|
|
game.map_settings.enemy_evolution.time_factor = 0
|
|
game.map_settings.enemy_evolution.destroy_factor = 0
|
|
game.map_settings.enemy_evolution.pollution_factor = 0
|
|
game.map_settings.pollution.enabled = false
|
|
game.map_settings.enemy_expansion.enabled = false
|
|
|
|
--Playground Surface
|
|
local map_gen_settings = {
|
|
["water"] = 0,
|
|
["starting_area"] = 1,
|
|
["cliff_settings"] = {cliff_elevation_interval = 0, cliff_elevation_0 = 0},
|
|
["default_enable_all_autoplace_controls"] = false,
|
|
["autoplace_settings"] = {
|
|
["entity"] = {treat_missing_as_default = false},
|
|
["tile"] = {treat_missing_as_default = false},
|
|
["decorative"] = {treat_missing_as_default = false},
|
|
},
|
|
autoplace_controls = {
|
|
["coal"] = {frequency = 0, size = 0, richness = 0},
|
|
["stone"] = {frequency = 0, size = 0, richness = 0},
|
|
["copper-ore"] = {frequency = 0, size = 0, richness = 0},
|
|
["iron-ore"] = {frequency = 0, size = 0, richness = 0},
|
|
["uranium-ore"] = {frequency = 0, size = 0, richness = 0},
|
|
["crude-oil"] = {frequency = 0, size = 0, richness = 0},
|
|
["trees"] = {frequency = 0, size = 0, richness = 0},
|
|
["enemy-base"] = {frequency = 0, size = 0, richness = 0}
|
|
},
|
|
}
|
|
local surface = game.create_surface("biter_battles", map_gen_settings)
|
|
surface.request_to_generate_chunks({0,0}, 2)
|
|
surface.force_generate_chunk_requests()
|
|
|
|
--Disable Nauvis
|
|
local surface = game.surfaces[1]
|
|
local map_gen_settings = surface.map_gen_settings
|
|
map_gen_settings.height = 3
|
|
map_gen_settings.width = 3
|
|
surface.map_gen_settings = map_gen_settings
|
|
for chunk in surface.get_chunks() do
|
|
surface.delete_chunk({chunk.x, chunk.y})
|
|
end
|
|
end
|
|
|
|
function Public.forces()
|
|
local surface = game.surfaces["biter_battles"]
|
|
|
|
game.create_force("north")
|
|
game.create_force("south")
|
|
game.create_force("spectator")
|
|
game.create_force("north_biters")
|
|
game.create_force("south_biters")
|
|
|
|
local f = game.forces["north"]
|
|
f.set_spawn_position({0, -44}, surface)
|
|
f.set_cease_fire('player', true)
|
|
f.set_friend("spectator", true)
|
|
f.set_friend("south_biters", true)
|
|
f.share_chart = true
|
|
|
|
local f = game.forces["south"]
|
|
f.set_spawn_position({0, 44}, surface)
|
|
f.set_cease_fire('player', true)
|
|
f.set_friend("spectator", true)
|
|
f.set_friend("north_biters", true)
|
|
f.share_chart = true
|
|
|
|
local f = game.forces["north_biters"]
|
|
f.set_friend("south_biters", true)
|
|
f.set_friend("south", true)
|
|
f.set_friend("player", true)
|
|
f.set_friend("spectator", true)
|
|
f.share_chart = false
|
|
|
|
local f = game.forces["south_biters"]
|
|
f.set_friend("north_biters", true)
|
|
f.set_friend("north", true)
|
|
f.set_friend("player", true)
|
|
f.set_friend("spectator", true)
|
|
f.share_chart = false
|
|
|
|
local f = game.forces["spectator"]
|
|
f.set_spawn_position({0,0},surface)
|
|
f.technologies["toolbelt"].researched=true
|
|
f.set_cease_fire("north_biters", true)
|
|
f.set_cease_fire("south_biters", true)
|
|
f.set_friend("north", true)
|
|
f.set_friend("south", true)
|
|
f.set_cease_fire("player", true)
|
|
f.share_chart = true
|
|
|
|
local f = game.forces["player"]
|
|
f.set_spawn_position({0,0},surface)
|
|
f.set_cease_fire('spectator', true)
|
|
f.set_cease_fire("north_biters", true)
|
|
f.set_cease_fire("south_biters", true)
|
|
f.set_cease_fire('north', true)
|
|
f.set_cease_fire('south', true)
|
|
f.share_chart = false
|
|
|
|
if not global.bb_settings.blueprint_library_importing then
|
|
game.permissions.get_group("Default").set_allows_action(defines.input_action.grab_blueprint_record, false)
|
|
end
|
|
if not global.bb_settings.blueprint_string_importing then
|
|
game.permissions.get_group("Default").set_allows_action(defines.input_action.import_blueprint_string, false)
|
|
game.permissions.get_group("Default").set_allows_action(defines.input_action.import_blueprint, false)
|
|
end
|
|
|
|
local p = game.permissions.create_group("spectator")
|
|
for action_name, _ in pairs(defines.input_action) do
|
|
p.set_allows_action(defines.input_action[action_name], false)
|
|
end
|
|
|
|
local defs = {
|
|
defines.input_action.activate_copy,
|
|
defines.input_action.activate_cut,
|
|
defines.input_action.activate_paste,
|
|
defines.input_action.clean_cursor_stack,
|
|
defines.input_action.edit_permission_group,
|
|
defines.input_action.gui_click,
|
|
defines.input_action.gui_confirmed,
|
|
defines.input_action.gui_elem_changed,
|
|
defines.input_action.gui_location_changed,
|
|
defines.input_action.gui_selected_tab_changed,
|
|
defines.input_action.gui_selection_state_changed,
|
|
defines.input_action.gui_switch_state_changed,
|
|
defines.input_action.gui_text_changed,
|
|
defines.input_action.gui_value_changed,
|
|
defines.input_action.open_character_gui,
|
|
defines.input_action.open_kills_gui,
|
|
defines.input_action.rotate_entity,
|
|
defines.input_action.start_walking,
|
|
defines.input_action.toggle_show_entity_info,
|
|
defines.input_action.write_to_console,
|
|
}
|
|
|
|
for _, d in pairs(defs) do p.set_allows_action(d, true) end
|
|
|
|
global.target_entities = {}
|
|
global.rocket_silo = {}
|
|
global.spectator_rejoin_delay = {}
|
|
global.spy_fish_timeout = {}
|
|
global.force_area = {}
|
|
global.unit_spawners = {}
|
|
global.unit_spawners.north_biters = {}
|
|
global.unit_spawners.south_biters = {}
|
|
global.active_biters = {}
|
|
global.unit_groups = {}
|
|
global.evo_raise_counter = 1
|
|
global.next_attack = "north"
|
|
if math.random(1,2) == 1 then global.next_attack = "south" end
|
|
global.bb_evolution = {}
|
|
global.bb_threat_income = {}
|
|
global.bb_threat = {}
|
|
|
|
global.terrain_gen = {}
|
|
global.terrain_gen.counter = 0
|
|
global.terrain_gen.chunk_mirror = {}
|
|
global.terrain_gen.size_of_chunk_mirror = 0
|
|
global.terrain_gen.chunk_copy = {}
|
|
global.terrain_gen.size_of_chunk_copy = 0
|
|
|
|
global.map_pregen_message_counter = {}
|
|
|
|
for _, force in pairs(game.forces) do
|
|
game.forces[force.name].technologies["artillery"].enabled = false
|
|
game.forces[force.name].technologies["artillery-shell-range-1"].enabled = false
|
|
game.forces[force.name].technologies["artillery-shell-speed-1"].enabled = false
|
|
game.forces[force.name].technologies["atomic-bomb"].enabled = false
|
|
game.forces[force.name].research_queue_enabled = true
|
|
global.target_entities[force.index] = {}
|
|
global.spy_fish_timeout[force.name] = 0
|
|
global.active_biters[force.name] = {}
|
|
global.bb_evolution[force.name] = 0
|
|
global.bb_threat_income[force.name] = 0
|
|
global.bb_threat[force.name] = 0
|
|
global.biter_health_boost_forces[force.index] = 1
|
|
end
|
|
end
|
|
|
|
return Public |