1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-01-10 00:43:27 +02:00
ComfyFactorio/maps/biter_battles_v2/init.lua
MewMew 00e1f84dad Update
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
2020-04-18 12:10:54 +02:00

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