local Public = {} function Public.settings() global.gui_refresh_delay = 0 global.game_lobby_active = true global.bb_debug = false global.combat_balance = {} global.nv_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() local map_gen_settings = {} map_gen_settings.seed = math.random(1, 99999999) map_gen_settings.water = math.random(5, 10) * 0.025 map_gen_settings.starting_area = 1 map_gen_settings.terrain_segmentation = 8 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 = 2.5, size = 0.65, richness = 0.5}, ["iron-ore"] = {frequency = 2.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(5, 12) * 0.1, size = math.random(5, 12) * 0.1, richness = math.random(1, 10) * 0.1}, ["enemy-base"] = {frequency = 0, size = 0, richness = 0} } local surface = game.create_surface("mirror_terrain", map_gen_settings) local hatchery_position = {x = 200, y = 0} local x = hatchery_position.x - 16 local offset = 38 surface.request_to_generate_chunks({x, 0}, 5) surface.force_generate_chunk_requests() local positions = {{x = x, y = offset}, {x = x, y = offset * -1}, {x = x, y = offset * -2}, {x = x, y = offset * 2}} table.shuffle_table(positions) local r = 32 for x = r * -1, r, 1 do for y = r * -1, r, 1 do local p = {x = hatchery_position.x + x, y = hatchery_position.y + y} if math.sqrt(x ^ 2 + y ^ 2) < r then local tile = surface.get_tile(p) if tile.name == "water" or tile.name == "deepwater" then surface.set_tiles({{name = "landfill", position = p}}, true) end end end end local map_gen_settings2 = { ["seed"] = 1, ["water"] = 1, ["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}, }, } global.active_surface_index = game.create_surface("native_war", map_gen_settings2) local surface = game.surfaces["native_war"] surface.request_to_generate_chunks({0,0}, 8) surface.force_generate_chunk_requests() end function Public.forces() local surface = game.surfaces["native_war"] game.create_force("west") game.create_force("east") game.create_force("spectator") game.forces.west.set_friend("spectator", true) game.forces.west.set_spawn_position({-205, 0}, surface) game.forces.west.share_chart = true game.forces.east.set_friend("spectator", true) game.forces.east.set_spawn_position({205, 0}, surface) game.forces.east.share_chart = true game.forces.spectator.set_friend("west", true) game.forces.spectator.set_friend("east", true) game.forces.spectator.set_spawn_position({0,-190},surface) game.forces.spectator.share_chart = false if not global.nv_settings.blueprint_library_importing then game.permissions.get_group("Default").set_allows_action(defines.input_action.grab_blueprint_record, false) end if not global.nv_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.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.biter_raffle = {} 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.chunks_to_mirror = {} global.map_pregen_message_counter = {} for _, force_name in pairs({"west", "east"}) do game.forces[force_name].share_chart = true game.forces[force_name].research_queue_enabled = true 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["land-mine"].enabled = false game.forces[force_name].technologies["atomic-bomb"].enabled = false game.forces[force_name].research_queue_enabled = true game.forces[force_name].share_chart = true local force_index = game.forces[force_name].index global.map_forces[force_name].unit_health_boost = 1 global.map_forces[force_name].unit_count = 0 global.map_forces[force_name].units = {} global.map_forces[force_name].radar = {} global.map_forces[force_name].max_unit_count = 768 global.map_forces[force_name].player_count = 0 global.biter_reanimator.forces[force_index] = 0 global.map_forces[force_name].energy = 0 global.map_forces[force_name].modifier ={damage = 1, resistance = 1, splash = 1} global.map_forces[force_name].ate_buffer_potion = { ["automation-science-pack"] = 0, ["logistic-science-pack"]= 0, ["military-science-pack"]= 0, ["chemical-science-pack"]= 0, ["production-science-pack"]= 0, ["utility-science-pack"]= 0 } if force_name == "west" then global.map_forces[force_name].worm_turrets_positions = { [1] = {x=-127,y=-38}, [2] = {x=-112,y=-38}, [3] = {x=-127,y=-70}, [4] = {x=-112,y=-70}, [5] = {x=-127,y=-102}, [6] = {x=-112,y=-102}, [7] = {x=-90,y=-119}, [8] = {x=-90,y=-136}, [9] = {x=-70,y=-90}, [10] = {x=-50,y=-90}, [11] = {x=-70,y=-58}, [12] = {x=-50,y=-58}, [13] = {x=-70,y=-26}, [14] = {x=-50,y=-26}, [15] = {x=-70,y=0}, [16] = {x=-50,y=0}, [17] = {x=-70,y=36}, [18] = {x=-50,y=36}, [19] = {x=-70,y=68}, [20] = {x=-50,y=68}, [21] = {x=-70,y=100}, [22] = {x=-50,y=100}, [23] = {x=-30,y=119}, [24] = {x=-30,y=136}, [25] = {x=-9,y=90}, [26] = {x=9,y=90}, [27] = {x=-9,y=59}, [28] = {x=9,y=59}, [29] = {x=-9,y=27}, [30] = {x=9,y=27} } global.map_forces[force_name].spawn = {x=-137,y=0} global.map_forces[force_name].eei = {x=-200,y=0} else global.map_forces[force_name].worm_turrets_positions ={ [1] = {x=127,y=38}, [2] = {x=112,y=38}, [3] = {x=127,y=70}, [4] = {x=112,y=70}, [5] = {x=127,y=102}, [6] = {x=112,y=102}, [7] = {x=90,y=119}, [8] = {x=90,y=136}, [9] = {x=70,y=90}, [10] = {x=50,y=90}, [11] = {x=70,y=58}, [12] = {x=50,y=58}, [13] = {x=70,y=26}, [14] = {x=50,y=26}, [15] = {x=70,y=0}, [16] = {x=50,y=0}, [17] = {x=70,y=-36}, [18] = {x=50,y=-36}, [19] = {x=70,y=-68}, [20] = {x=50,y=-68}, [21] = {x=70,y=-100}, [22] = {x=50,y=-100}, [23] = {x=30,y=-119}, [24] = {x=30,y=-136}, [25] = {x=-9,y=-90}, [26] = {x=9,y=-90}, [27] = {x=9,y=-59}, [28] = {x=-9,y=-59}, [29] = {x=9,y=-27}, [30] = {x=-9,y=-27} } global.map_forces[force_name].spawn = {x=137,y=0} global.map_forces[force_name].eei = {x=201,y=0} end global.active_biters[force_name] = {} global.biter_raffle[force_name] = {} end end return Public