diff --git a/maps/biter_battles_v2/ai.lua b/maps/biter_battles_v2/ai.lua index 9322cb18..27bf242d 100644 --- a/maps/biter_battles_v2/ai.lua +++ b/maps/biter_battles_v2/ai.lua @@ -3,8 +3,8 @@ local math_random = math.random local ai = {} local threat_values = { - ["small-spitter"] = 1, - ["small-biter"] = 1, + ["small-spitter"] = 1.5, + ["small-biter"] = 1.5, ["medium-spitter"] = 4, ["medium-biter"] = 4, ["big-spitter"] = 8, diff --git a/maps/biter_battles_v2/bb_map_intro.lua b/maps/biter_battles_v2/bb_map_intro.lua index 3fb0b265..b072a239 100644 --- a/maps/biter_battles_v2/bb_map_intro.lua +++ b/maps/biter_battles_v2/bb_map_intro.lua @@ -3,28 +3,28 @@ local event = require 'utils.event' local info = [[ - - B I T E R B A T T L E S - - - Your goal is to defend your team's rocket silo and defeat the other team. - Feeding science packs via the gui buttons, - increases the strength of the opposing team's biters. - + Your goal is to defend your team's rocket silo and defeat the other team. + Feed the opponent's biters with science packs to increase their strength. + High tier science juice will yield stronger results. + There is no major direct pvp combat The horizontal border river is landfill proof. Construction robots can not build on the other teams's side. There is no biter evolution from pollution, time or destruction. - ONLY feeding them increases their power and will lead to your teams victory. + ONLY feeding increases their power and will lead to your teams victory. The gui yields two different main stats for each team's biters. - EVO - The evolution of the biters. It can go above 100% which unlocks endgame modifiers, - granting biters increased damage and evasion. + granting them increased damage and evasion. - THREAT - Threat creates biter attacks. Feeding gives permanent "threat-income", as well as creating instant threat. - A high threat value will cause more biters to attack. - A threat of zero or below will cause no attacks. + A high threat value causes big attacks. + Values of zero or below will cause no attacks. ]] local function create_map_intro_button(player) diff --git a/maps/biter_battles_v2/biter_battles_v2.lua b/maps/biter_battles_v2/biter_battles_v2.lua index f6323490..86bff7ff 100644 --- a/maps/biter_battles_v2/biter_battles_v2.lua +++ b/maps/biter_battles_v2/biter_battles_v2.lua @@ -8,8 +8,8 @@ local event = require 'utils.event' local function init_surface() local map_gen_settings = {} - map_gen_settings.water = "0.25" - map_gen_settings.starting_area = "4.5" + map_gen_settings.water = "0.35" + map_gen_settings.starting_area = "4.25" map_gen_settings.cliff_settings = {cliff_elevation_interval = 12, cliff_elevation_0 = 32} map_gen_settings.autoplace_controls = { ["coal"] = {frequency = "2", size = "1", richness = "1"}, @@ -19,7 +19,7 @@ local function init_surface() ["uranium-ore"] = {frequency = "2", size = "1", richness = "1"}, ["crude-oil"] = {frequency = "3", size = "1", richness = "1"}, ["trees"] = {frequency = "1", size = "0.5", richness = "0.7"}, - ["enemy-base"] = {frequency = "2", size = "3", richness = "1"} + ["enemy-base"] = {frequency = "4", size = "2", richness = "2"} } game.create_surface("biter_battles", map_gen_settings) diff --git a/maps/biter_battles_v2/feeding.lua b/maps/biter_battles_v2/feeding.lua index 09d29987..a3ede8c5 100644 --- a/maps/biter_battles_v2/feeding.lua +++ b/maps/biter_battles_v2/feeding.lua @@ -61,7 +61,7 @@ local function feed_biters(player, food) local e = (global.bb_evolution[biter_force_name] * 100) + 1 --local diminishing_modifier = 1 / (10 ^ (e * 0.03)) local diminishing_modifier = (1 / (10 ^ (e * 0.014))) / (e * 0.5) - global.bb_threat_income[biter_force_name] = global.bb_threat_income[biter_force_name] + (food_values[food].value * diminishing_modifier * 10) + global.bb_threat_income[biter_force_name] = global.bb_threat_income[biter_force_name] + (food_values[food].value * diminishing_modifier * 15) ---SET EVOLUTION local e = (game.forces[biter_force_name].evolution_factor * 100) + 1 @@ -75,12 +75,12 @@ local function feed_biters(player, food) end --ADD INSTANT THREAT - global.bb_threat[biter_force_name] = global.bb_threat[biter_force_name] + (food_values[food].value * 100 * flask_amount) + global.bb_threat[biter_force_name] = global.bb_threat[biter_force_name] + (food_values[food].value * 200 * flask_amount) set_biter_endgame_damage(biter_force_name, game.forces[biter_force_name]) global.bb_evasion[biter_force_name] = (global.bb_evolution[biter_force_name] - 1) * 333 - if global.bb_evasion[biter_force_name] > 900 then global.bb_evasion[biter_force_name] = 900 end + if global.bb_evasion[biter_force_name] > 950 then global.bb_evasion[biter_force_name] = 950 end end return feed_biters \ No newline at end of file diff --git a/maps/biter_battles_v2/game_won.lua b/maps/biter_battles_v2/game_won.lua index 34c24cab..f1876fb5 100644 --- a/maps/biter_battles_v2/game_won.lua +++ b/maps/biter_battles_v2/game_won.lua @@ -28,9 +28,9 @@ local function destroy_entity(e) e.die() end -local function annihilate_base(center_pos, surface, force_name) +local function annihilate_base_old(center_pos, surface, force_name) local entities = {} - for _, e in pairs(surface.find_entities_filtered({force = force_name, area = {{center_pos.x - 40, center_pos.y - 40},{center_pos.x + 40, center_pos.y + 40}}})) do + for _, e in pairs(surface.find_entities_filtered({force = force_name, area = {{center_pos.x - 32, center_pos.y - 32},{center_pos.x + 32, center_pos.y + 32}}})) do if e.name ~= "player" then entities[#entities + 1] = e end @@ -51,7 +51,7 @@ local function annihilate_base(center_pos, surface, force_name) end for i = 1, #entities, 1 do - local t = i * 5 + local t = i * 2 if not global.on_tick_schedule[game.tick + t] then global.on_tick_schedule[game.tick + t] = {} end local pos = global.rocket_silo[global.bb_game_won_by_team].position global.on_tick_schedule[game.tick + t][#global.on_tick_schedule[game.tick + t] + 1] = { @@ -61,6 +61,33 @@ local function annihilate_base(center_pos, surface, force_name) end end +local function annihilate_base(center_pos, surface, force_name) + local entities = {} + for _, e in pairs(surface.find_entities_filtered({force = force_name, area = {{center_pos.x - 128, center_pos.y - 128},{center_pos.x + 128, center_pos.y + 128}}})) do + if e.name ~= "player" then + if e.valid then + local distance_to_center = math.ceil(math.sqrt((e.position.x - center_pos.x)^2 + (e.position.y - center_pos.y)^2)) + if not entities[distance_to_center] then entities[distance_to_center] = {} end + entities[distance_to_center][#entities[distance_to_center] + 1] = e + end + end + end + + if #entities == 0 then return end + + local t = 1 + for i1, entity_list in pairs(entities) do + for i2, e in pairs(entity_list) do + if not global.on_tick_schedule[game.tick + t] then global.on_tick_schedule[game.tick + t] = {} end + global.on_tick_schedule[game.tick + t][#global.on_tick_schedule[game.tick + t] + 1] = { + func = destroy_entity, + args = {e} + } + t = t + 3 + end + end +end + local function create_fireworks_rocket(surface, position) local particles = {"coal-particle", "copper-ore-particle", "iron-ore-particle", "stone-particle"} local particle = particles[math.random(1, #particles)] diff --git a/maps/biter_battles_v2/gui.lua b/maps/biter_battles_v2/gui.lua index 0b20691d..99d2f653 100644 --- a/maps/biter_battles_v2/gui.lua +++ b/maps/biter_battles_v2/gui.lua @@ -39,21 +39,25 @@ local function create_team_lock_gui(player) if player.admin == false and global.teams_are_locked ~= true then return end - local caption = "Teams unlocked" + local caption = "Unlocked" local color = {r = 0.33, g = 0.77, b = 0.33} + local width = 68 + local tooltip = "Lock teams to disable joining" if global.teams_are_locked then - caption = "Teams locked" + caption = "Teams Locked" color = {r = 0.77, g = 0.33, b = 0.33} + width = 100 + tooltip = "An admin has locked the teams, joining is currently disabled" end - local button = player.gui.top.add({type = "sprite-button", name = "bb_team_lock_button", caption = caption}) + local button = player.gui.top.add({type = "sprite-button", name = "bb_team_lock_button", caption = caption, tooltip = tooltip}) button.style.font = "heading-2" button.style.font_color = color button.style.minimal_height = 38 - button.style.minimal_width = 120 + button.style.minimal_width = width button.style.top_padding = 2 - button.style.left_padding = 4 - button.style.right_padding = 4 + button.style.left_padding = 0 + button.style.right_padding = 0 button.style.bottom_padding = 2 end diff --git a/maps/biter_battles_v2/terrain.lua b/maps/biter_battles_v2/terrain.lua index 32ce53ad..d87fc8aa 100644 --- a/maps/biter_battles_v2/terrain.lua +++ b/maps/biter_battles_v2/terrain.lua @@ -25,7 +25,6 @@ local function get_noise(name, pos) noise[2] = simplex_noise(pos.x * 0.05, pos.y * 0.05, seed) seed = seed + noise_seed_add local noise = noise[1] + noise[2] * 0.1 - --noise = noise * 0.5 return noise end if name == 2 then @@ -35,7 +34,6 @@ local function get_noise(name, pos) noise[2] = simplex_noise(pos.x * 0.07, pos.y * 0.07, seed) seed = seed + noise_seed_add local noise = noise[1] + noise[2] * 0.2 - --noise = noise * 0.5 return noise end end @@ -166,8 +164,8 @@ local function rainbow_ore_and_ponds(event) if i == 0 then i = 4 end surface.create_entity({name = ores[i], position = pos, amount = amount}) end - if noise < -0.83 then - if noise < -0.9 then + if noise < -0.85 then + if noise < -0.91 then surface.set_tiles({{name = "deepwater", position = pos}}) else surface.set_tiles({{name = "water", position = pos}})