From 0cad7b367f24299e5e95794b8c686c63acf808fb Mon Sep 17 00:00:00 2001 From: MewMew Date: Mon, 4 Nov 2019 13:04:43 +0100 Subject: [PATCH] turrets at biter spawn, terrain tweak --- maps/mountain_fortress_v2/main.lua | 2 +- maps/mountain_fortress_v2/terrain.lua | 31 +++++++++++++++++++++++---- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/maps/mountain_fortress_v2/main.lua b/maps/mountain_fortress_v2/main.lua index 358cd8d9..8b81caeb 100644 --- a/maps/mountain_fortress_v2/main.lua +++ b/maps/mountain_fortress_v2/main.lua @@ -41,7 +41,7 @@ function Public.reset_map() local map_gen_settings = { ["seed"] = math.random(1, 1000000), --["height"] = 256, - ["width"] = 1536, + ["width"] = level_depth, ["water"] = 0.001, ["starting_area"] = 1, ["cliff_settings"] = {cliff_elevation_interval = 0, cliff_elevation_0 = 0}, diff --git a/maps/mountain_fortress_v2/terrain.lua b/maps/mountain_fortress_v2/terrain.lua index 83c1a9ef..a5bf69eb 100644 --- a/maps/mountain_fortress_v2/terrain.lua +++ b/maps/mountain_fortress_v2/terrain.lua @@ -21,7 +21,7 @@ local noises = { ["scrapyard"] = {{modifier = 0.005, weight = 1}, {modifier = 0.01, weight = 0.35}, {modifier = 0.05, weight = 0.23}, {modifier = 0.1, weight = 0.11}}, } local level_depth = 960 -local worm_level_modifier = 0.20 +local worm_level_modifier = 0.18 local function get_noise(name, pos, seed) local noise = 0 @@ -255,6 +255,20 @@ local function process_level_6_position(p, seed, tiles, entities, markets, treas local large_caves = get_noise("large_caves", p, seed) local cave_rivers = get_noise("cave_rivers", p, seed) + --Chasms + local noise_cave_ponds = get_noise("cave_ponds", p, seed) + local small_caves = get_noise("small_caves", p, seed) + if noise_cave_ponds < 0.45 and noise_cave_ponds > -0.45 then + if small_caves > 0.45 then + tiles[#tiles + 1] = {name = "out-of-map", position = p} + return + end + if small_caves < -0.45 then + tiles[#tiles + 1] = {name = "out-of-map", position = p} + return + end + end + if large_caves > -0.03 and large_caves < 0.03 and cave_rivers < 0.25 then tiles[#tiles + 1] = {name = "water-green", position = p} if math_random(1,128) == 1 then entities[#entities + 1] = {name="fish", position=p} end @@ -764,14 +778,23 @@ local function biter_chunk(surface, left_top) tile_positions[#tile_positions + 1] = p end end + for i = 1, 1, 1 do local position = surface.find_non_colliding_position("biter-spawner", tile_positions[math_random(1, #tile_positions)], 16, 2) if position then - local e = surface.create_entity({name = spawner_raffle[math_random(1, #spawner_raffle)], position = position}) + local e = surface.create_entity({name = spawner_raffle[math_random(1, #spawner_raffle)], position = position, force = "enemy"}) e.destructible = false e.active = false end end + + for i = 1, 3, 1 do + local position = surface.find_non_colliding_position("big-worm-turret", tile_positions[math_random(1, #tile_positions)], 16, 2) + if position then + local e = surface.create_entity({name = "big-worm-turret", position = position, force = "enemy"}) + e.destructible = false + end + end --for _, e in pairs(surface.find_entities_filtered({area = {{left_top.x, left_top.y},{left_top.x + 32, left_top.y + 32}}, type = "cliff"})) do e.destroy() end end @@ -866,8 +889,8 @@ end local function process_chunk(surface, left_top) if not surface then return end if not surface.valid then return end - if left_top.x >= 768 then return end - if left_top.x < -768 then return end + if left_top.x >= level_depth * 0.5 then return end + if left_top.x < level_depth * -0.5 then return end if left_top.y % level_depth == 0 and left_top.y < 0 and left_top.y > level_depth * -10 then wall(surface, left_top, surface.map_gen_settings.seed) return end