1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2024-12-30 23:17:53 +02:00

room tweaks

This commit is contained in:
MewMew 2019-06-18 17:12:54 +02:00
parent e80864933c
commit 4a44a3dc45
2 changed files with 47 additions and 12 deletions

View File

@ -67,8 +67,11 @@ room.biters = function(surface, cell_left_top, direction)
table.shuffle_table(tile_positions)
for _, pos in pairs(tile_positions) do
surface.create_entity({name = get_biter(), position = pos, force = "enemy"})
amount = amount - 1
local enemy = get_biter()
if surface.can_place_entity({name = enemy, position = pos}) then
surface.create_entity({name = enemy, position = pos, force = "enemy"})
amount = amount - 1
end
if amount < 1 then break end
end
end
@ -87,8 +90,11 @@ room.spitters = function(surface, cell_left_top, direction)
table.shuffle_table(tile_positions)
for _, pos in pairs(tile_positions) do
surface.create_entity({name = get_spitter(), position = pos, force = "enemy"})
amount = amount - 1
local enemy = get_spitter()
if surface.can_place_entity({name = enemy, position = pos}) then
surface.create_entity({name = enemy, position = pos, force = "enemy"})
amount = amount - 1
end
if amount < 1 then break end
end
end
@ -157,7 +163,7 @@ room.tons_of_trees = function(surface, cell_left_top, direction)
for x = 0.5, grid_size - 0.5, 1 do
for y = 0.5, grid_size - 0.5, 1 do
local pos = {left_top.x + x, left_top.y + y}
if math.random(1,3) == 1 then
if math.random(1,4) == 1 then
surface.create_entity({name = tree, position = pos, force = "neutral"})
end
end
@ -177,6 +183,7 @@ end
room.single_rock = function(surface, cell_left_top, direction)
local left_top = {x = cell_left_top.x * grid_size, y = cell_left_top.y * grid_size}
surface.create_entity({name = rock_raffle[math.random(1, #rock_raffle)], position = {left_top.x + grid_size * 0.5, left_top.y + grid_size * 0.5}, force = "neutral"})
room.biters(surface, cell_left_top, direction)
end
room.three_rocks = function(surface, cell_left_top, direction)
@ -258,6 +265,7 @@ room.tons_of_scrap = function(surface, cell_left_top, direction)
end
room.pond = function(surface, cell_left_top, direction)
local tree = tree_raffle[math.random(1, #tree_raffle)]
local left_top = {x = cell_left_top.x * grid_size, y = cell_left_top.y * grid_size}
map_functions.draw_noise_tile_circle({x = left_top.x + grid_size * 0.5, y = left_top.y + grid_size * 0.5}, "water", surface, grid_size * 0.3)
for x = 0.5, grid_size - 0.5, 1 do
@ -268,6 +276,11 @@ room.pond = function(surface, cell_left_top, direction)
surface.create_entity({name = "fish", position = pos, force = "neutral"})
end
end
if math.random(1,40) == 1 then
if surface.can_place_entity({name = tree, position = pos, force = "neutral"}) then
surface.create_entity({name = tree, position = pos, force = "neutral"})
end
end
end
end
end
@ -278,18 +291,18 @@ local room_weights = {
{func = room.tons_of_trees, weight = 15},
{func = room.lots_of_rocks, weight = 25},
{func = room.lots_of_rocks, weight = 15},
{func = room.tons_of_rocks, weight = 15},
{func = room.quad_rocks, weight = 10},
{func = room.three_rocks, weight = 3},
{func = room.single_rock, weight = 10},
{func = room.checkerboard_ore, weight = 5},
{func = room.checkerboard_ore, weight = 7},
{func = room.single_oil, weight = 5},
--{func = room.some_scrap, weight = 10},
{func = room.lots_of_scrap, weight = 5},
--{func = room.tons_of_scrap, weight = 2},
{func = room.empty, weight = 1},
--{func = room.empty, weight = 1},
{func = room.pond, weight = 10},

View File

@ -123,6 +123,23 @@ room.spitters_and_biters = function(surface, cell_left_top, direction)
end
end
room.random_enemies = function(surface, cell_left_top, direction)
local tree = tree_raffle[math.random(1, #tree_raffle)]
local left_top = {x = cell_left_top.x * grid_size, y = cell_left_top.y * grid_size}
if math.random(1,2) == 1 then room.nests(surface, cell_left_top, direction) end
for x = 0.5, grid_size * 2 - 0.5, 1 do
for y = 0.5, grid_size * 2 - 0.5, 1 do
local pos = {left_top.x + x, left_top.y + y}
if math.random(1, math.random(32, 64)) == 1 then surface.create_entity({name = tree, position = pos, force = "neutral"}) end
end
end
if math.random(1,4) == 1 then room.worms(surface, cell_left_top, direction) end
if math.random(1,2) == 1 then room.biters(surface, cell_left_top, direction) end
if math.random(1,2) == 1 then room.spitters(surface, cell_left_top, direction) end
if math.random(1,2) == 1 then room.spitters_and_biters(surface, cell_left_top, direction) end
end
room.stone_block = function(surface, cell_left_top, direction)
local left_top = {x = cell_left_top.x * grid_size, y = cell_left_top.y * grid_size}
for x = 4.5, grid_size * 2 - 4.5, 1 do
@ -179,6 +196,10 @@ room.circle_pond_with_trees = function(surface, cell_left_top, direction)
end
end
end
if math.random(1,4) == 1 then room.worms(surface, cell_left_top, direction) end
if math.random(1,2) == 1 then room.biters(surface, cell_left_top, direction) end
if math.random(1,2) == 1 then room.spitters(surface, cell_left_top, direction) end
if math.random(1,2) == 1 then room.spitters_and_biters(surface, cell_left_top, direction) end
end
room.checkerboard_ore = function(surface, cell_left_top, direction)
@ -206,6 +227,10 @@ room.checkerboard_ore = function(surface, cell_left_top, direction)
end
end
end
if math.random(1,4) == 1 then room.worms(surface, cell_left_top, direction) end
if math.random(1,2) == 1 then room.biters(surface, cell_left_top, direction) end
if math.random(1,2) == 1 then room.spitters(surface, cell_left_top, direction) end
if math.random(1,2) == 1 then room.spitters_and_biters(surface, cell_left_top, direction) end
end
room.minefield_chest = function(surface, cell_left_top, direction)
@ -249,10 +274,7 @@ local room_weights = {
{func = room.minefield_chest, weight = 5},
{func = room.checkerboard_ore, weight = 3},
{func = room.biters, weight = 3},
{func = room.spitters, weight = 3},
{func = room.spitters_and_biters, weight = 3},
{func = room.nests, weight = 8}
{func = room.random_enemies, weight = 20}
}
local room_shuffle = {}