1
0
mirror of https://github.com/Refactorio/RedMew.git synced 2025-01-18 03:21:47 +02:00
This commit is contained in:
grilledham 2018-08-03 23:26:44 +01:00
parent a65234f6b6
commit 46220b0f35
14 changed files with 905 additions and 64 deletions

View File

@ -8,8 +8,8 @@ local Random = require 'map_gen.shared.random'
local OutpostBuilder = require 'map_gen.presets.crash_site.outpost_builder'
local Perlin = require 'map_gen.shared.perlin_noise'
local outpost_seed = 30000
local ore_seed = 31000
local outpost_seed = 40000
local ore_seed = 46000
local enemy_seed = 420420
local outpost_random = Random.new(outpost_seed, outpost_seed * 2)
@ -56,19 +56,9 @@ local small_chemical_factory = require 'map_gen.presets.crash_site.outpost_data.
local medium_chemical_factory = require 'map_gen.presets.crash_site.outpost_data.medium_chemical_factory'
local big_chemical_factory = require 'map_gen.presets.crash_site.outpost_data.big_chemical_factory'
--[[ local small_power_factory = require 'map_gen.presets.crash_site.outpost_data.small_power_factory'
local small_power_factory = require 'map_gen.presets.crash_site.outpost_data.small_power_factory'
local medium_power_factory = require 'map_gen.presets.crash_site.outpost_data.medium_power_factory'
local big_power_factory = require 'map_gen.presets.crash_site.outpost_data.big_power_factory' ]]
--[[ local stage1 = {
small_iron_plate_factory,
small_copper_plate_factory,
small_stone_factory,
small_gear_factory,
small_circuit_factory,
small_science_factory,
small_oil_refinery,
small_chemical_factory
} ]]
local big_power_factory = require 'map_gen.presets.crash_site.outpost_data.big_power_factory'
local stage1a = {
small_iron_plate_factory,
@ -88,7 +78,19 @@ local stage1b = {
small_circuit_factory,
small_science_factory,
small_oil_refinery,
small_chemical_factory
small_chemical_factory,
small_power_factory
}
local stage1b_pos = {
{4, 4},
{4, 6},
{6, 4},
{6, 6},
{3, 5},
{5, 3},
{5, 7},
{7, 5}
}
local stage2 = {
@ -103,7 +105,27 @@ local stage2 = {
small_science_factory,
medium_science_factory,
medium_oil_refinery,
medium_chemical_factory
medium_chemical_factory,
medium_power_factory
}
local stage2_pos = {
{2, 5},
{5, 2},
{5, 8},
{8, 5},
{3, 3},
{3, 4},
{3, 6},
{3, 7},
{4, 3},
{4, 7},
{6, 3},
{6, 7},
{7, 3},
{7, 4},
{7, 6},
{7, 7}
}
local stage3 = {
@ -118,7 +140,8 @@ local stage3 = {
medium_science_factory,
big_science_factory,
big_oil_refinery,
big_chemical_factory
big_chemical_factory,
big_power_factory
}
local stage4 = {
@ -285,36 +308,34 @@ for _, pos in ipairs(stage1a_pos) do
row[c] = shape
end
for r = 4, 6 do
for _, pos in ipairs(stage1b_pos) do
local r, c = pos[1], pos[2]
local row = pattern[r]
for c = 4, 6 do
if not row[c] then
local template = stage1b_iter()
local shape = outpost_builder:do_outpost(template)
local x = outpost_random:next_int(-outpost_offset, outpost_offset)
local y = outpost_random:next_int(-outpost_offset, outpost_offset)
shape = b.translate(shape, x, y)
local template = stage1b_iter()
local shape = outpost_builder:do_outpost(template)
row[c] = shape
end
end
local x = outpost_random:next_int(-outpost_offset, outpost_offset)
local y = outpost_random:next_int(-outpost_offset, outpost_offset)
shape = b.translate(shape, x, y)
row[c] = shape
end
for r = 3, 7 do
for _, pos in ipairs(stage2_pos) do
local r, c = pos[1], pos[2]
local row = pattern[r]
for c = 3, 7 do
if not row[c] then
local template = stage2_iter()
local shape = outpost_builder:do_outpost(template)
local x = outpost_random:next_int(-outpost_offset, outpost_offset)
local y = outpost_random:next_int(-outpost_offset, outpost_offset)
shape = b.translate(shape, x, y)
local template = stage2_iter()
local shape = outpost_builder:do_outpost(template)
row[c] = shape
end
end
local x = outpost_random:next_int(-outpost_offset, outpost_offset)
local y = outpost_random:next_int(-outpost_offset, outpost_offset)
shape = b.translate(shape, x, y)
row[c] = shape
end
for r = 2, 8 do
@ -547,7 +568,7 @@ map = b.choose(b.rectangle(16, 16), spawn_shape, map)
local bounds = b.rectangle(grid_block_size * grid_number_of_blocks)
map = b.choose(bounds, map, b.empty_shape)
--return outpost_builder:do_outpost(small_power_factory)
--return outpost_builder:do_outpost(big_power_factory)
--return b.full_shape

View File

@ -141,7 +141,7 @@ local level3c =
ob.extend_1_way(
base_factory[2],
{
factory = factory_b,
factory = factory_c,
fallback = level3b,
max_count = 2
}
@ -152,7 +152,7 @@ local level4 =
base_factory[3],
{
market = market,
fallback = level3b
fallback = level3c
}
)

View File

@ -0,0 +1,132 @@
local ob = require 'map_gen.presets.crash_site.outpost_builder'
local level2 =
ob.make_1_way {
force = 'neutral',
[1] = {tile = 'refined-concrete'},
[2] = {tile = 'refined-concrete'},
[3] = {tile = 'refined-concrete'},
[4] = {tile = 'refined-concrete'},
[5] = {tile = 'refined-concrete'},
[6] = {tile = 'refined-concrete'},
[7] = {tile = 'refined-concrete'},
[8] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[9] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[10] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[11] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[12] = {tile = 'refined-concrete'},
[13] = {tile = 'refined-concrete'},
[14] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[15] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[16] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[17] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[18] = {tile = 'refined-concrete'},
[19] = {tile = 'refined-concrete'},
[20] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[21] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[22] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[23] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[24] = {tile = 'refined-concrete'},
[25] = {tile = 'refined-concrete'},
[26] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[27] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[28] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[29] = {entity = {name = 'steel-chest', callback = 'loot'}, tile = 'refined-concrete'},
[30] = {tile = 'refined-concrete'},
[31] = {tile = 'refined-concrete'},
[32] = {tile = 'refined-concrete'},
[33] = {tile = 'refined-concrete'},
[34] = {tile = 'refined-concrete'},
[35] = {tile = 'refined-concrete'},
[36] = {tile = 'refined-concrete'}
}
local level3 =
ob.make_1_way {
force = 'neutral',
max_count = 8,
[1] = {tile = 'refined-concrete'},
[2] = {tile = 'refined-concrete'},
[3] = {tile = 'refined-concrete'},
[4] = {tile = 'refined-concrete'},
[5] = {tile = 'refined-concrete'},
[6] = {tile = 'refined-concrete'},
[7] = {tile = 'refined-concrete'},
[8] = {tile = 'refined-concrete'},
[9] = {tile = 'refined-concrete'},
[10] = {tile = 'refined-concrete'},
[11] = {tile = 'refined-concrete'},
[12] = {tile = 'refined-concrete'},
[13] = {tile = 'refined-concrete'},
[14] = {tile = 'refined-concrete'},
[15] = {entity = {name = 'centrifuge', callback = 'factory'}, tile = 'refined-concrete'},
[16] = {tile = 'refined-concrete'},
[17] = {tile = 'refined-concrete'},
[18] = {tile = 'refined-concrete'},
[19] = {tile = 'refined-concrete'},
[20] = {tile = 'refined-concrete'},
[21] = {tile = 'refined-concrete'},
[22] = {tile = 'refined-concrete'},
[23] = {tile = 'refined-concrete'},
[24] = {tile = 'refined-concrete'},
[25] = {tile = 'refined-concrete'},
[26] = {tile = 'refined-concrete'},
[27] = {tile = 'refined-concrete'},
[28] = {tile = 'refined-concrete'},
[29] = {tile = 'refined-concrete'},
[30] = {tile = 'refined-concrete'},
[31] = {tile = 'refined-concrete'},
[32] = {tile = 'refined-concrete'},
[33] = {tile = 'refined-concrete'},
[34] = {tile = 'refined-concrete'},
[35] = {tile = 'refined-concrete'},
[36] = {tile = 'refined-concrete'}
}
local level4 =
ob.make_1_way {
force = 'neutral',
max_count = 1,
[1] = {tile = 'refined-concrete'},
[2] = {tile = 'refined-concrete'},
[3] = {tile = 'refined-concrete'},
[4] = {tile = 'refined-concrete'},
[5] = {tile = 'refined-concrete'},
[6] = {tile = 'refined-concrete'},
[7] = {tile = 'refined-concrete'},
[8] = {tile = 'refined-concrete'},
[9] = {tile = 'refined-concrete'},
[10] = {tile = 'refined-concrete'},
[11] = {tile = 'refined-concrete'},
[12] = {tile = 'refined-concrete'},
[13] = {tile = 'refined-concrete'},
[14] = {tile = 'refined-concrete'},
[15] = {entity = {name = 'market', callback = 'market'}},
[16] = {tile = 'refined-concrete'},
[17] = {tile = 'refined-concrete'},
[18] = {tile = 'refined-concrete'},
[19] = {tile = 'refined-concrete'},
[20] = {tile = 'refined-concrete'},
[21] = {tile = 'refined-concrete'},
[22] = {tile = 'refined-concrete'},
[23] = {tile = 'refined-concrete'},
[24] = {tile = 'refined-concrete'},
[25] = {tile = 'refined-concrete'},
[26] = {tile = 'refined-concrete'},
[27] = {tile = 'refined-concrete'},
[28] = {tile = 'refined-concrete'},
[29] = {tile = 'refined-concrete'},
[30] = {tile = 'refined-concrete'},
[31] = {tile = 'refined-concrete'},
[32] = {tile = 'refined-concrete'},
[33] = {tile = 'refined-concrete'},
[34] = {tile = 'refined-concrete'},
[35] = {tile = 'refined-concrete'},
[36] = {tile = 'refined-concrete'}
}
return {
level2,
level3,
level4
}

View File

@ -0,0 +1,234 @@
local ob = require 'map_gen.presets.crash_site.outpost_builder'
local Token = require 'utils.global_token'
local loot = {
{weight = 10},
{stack = {name = 'coin', count = 250, distance_factor = 1 / 20}, weight = 5},
{stack = {name = 'uranium-238', count = 500, distance_factor = 1 / 4}, weight = 5},
{stack = {name = 'uranium-235', count = 20, distance_factor = 1 / 128}, weight = 2},
{stack = {name = 'uranium-fuel-cell', count = 50, distance_factor = 1 / 128}, weight = 5},
{stack = {name = 'nuclear-fuel', count = 10, distance_factor = 1 / 128}, weight = 3},
{stack = {name = 'nuclear-reactor', count = 2, distance_factor = 1 / 512}, weight = 5},
{stack = {name = 'heat-exchanger', count = 16, distance_factor = 1 / 64}, weight = 5},
{stack = {name = 'heat-pipe', count = 50, distance_factor = 1 / 64}, weight = 5},
{stack = {name = 'steam-turbine', count = 25, distance_factor = 1 / 64}, weight = 5},
{stack = {name = 'medium-electric-pole', count = 50, distance_factor = 1 / 2}, weight = 5},
{stack = {name = 'big-electric-pole', count = 50, distance_factor = 1 / 2}, weight = 5},
{stack = {name = 'substation', count = 50, distance_factor = 1 / 2}, weight = 5}
}
local weights = ob.prepare_weighted_loot(loot)
local loot_callback =
Token.register(
function(chest)
ob.do_random_loot(chest, weights, loot)
end
)
local factory = {
callback = ob.magic_item_crafting_callback,
data = {
recipe = 'uranium-processing',
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 512, item = 'uranium-238'}
}
}
local factory_b = {
callback = ob.magic_item_crafting_callback,
data = {
recipe = 'uranium-fuel-cell',
output = {min_rate = 0.05 / 60, distance_factor = 0.05 / 60 / 512, item = 'uranium-fuel-cell'}
}
}
local factory_c = {
callback = ob.magic_item_crafting_callback,
data = {
recipe = 'nuclear-fuel',
output = {min_rate = 0.05 / 60, distance_factor = 0.05 / 60 / 512, item = 'nuclear-fuel'}
}
}
local market = {
callback = ob.market_set_items_callback,
data = {
{
name = 'coal',
price = 0.5,
distance_factor = 0.25 / 512,
min_price = 0.05
},
{
name = 'solid-fuel',
price = 1.25,
distance_factor = 0.75 / 512,
min_price = 0.125
},
{
name = 'uranium-fuel-cell',
price = 5,
distance_factor = 2.5 / 512,
min_price = 0.5
},
{
name = 'nuclear-fuel',
price = 10,
distance_factor = 5 / 512,
min_price = 0.1
},
{
name = 'uranium-238',
price = 1,
distance_factor = 0.5 / 512,
min_price = 0.1
},
{
name = 'uranium-235',
price = 99,
distance_factor = 49.5 / 512,
min_price = 9.9
},
{
name = 'boiler',
price = 3,
distance_factor = 1.5 / 512,
min_price = 0.3
},
{
name = 'steam-engine',
price = 6,
distance_factor = 3 / 512,
min_price = 0.6
},
{
name = 'solar-panel',
price = 12,
distance_factor = 6 / 512,
min_price = 1.2
},
{
name = 'accumulator',
price = 4,
distance_factor = 2 / 512,
min_price = 0.4
},
{
name = 'offshore-pump',
price = 2,
distance_factor = 1 / 512,
min_price = 0.2
},
{
name = 'pipe',
price = 0.25,
distance_factor = 0.125 / 512,
min_price = 0.025
},
{
name = 'pipe-to-ground',
price = 2.5,
distance_factor = 1.25 / 512,
min_price = 0.25
},
{
name = 'nuclear-reactor',
price = 500,
distance_factor = 250 / 512,
min_price = 50
},
{
name = 'heat-exchanger',
price = 30,
distance_factor = 15 / 512,
min_price = 3
},
{
name = 'heat-pipe',
price = 3,
distance_factor = 1.5 / 512,
min_price = 0.3
},
{
name = 'steam-turbine',
price = 30,
distance_factor = 15 / 512,
min_price = 3
},
{
name = 'medium-electric-pole',
price = 2,
distance_factor = 1 / 512,
min_price = 0.2
},
{
name = 'big-electric-pole',
price = 4,
distance_factor = 2 / 512,
min_price = 0.4
},
{
name = 'substation',
price = 8,
distance_factor = 4 / 512,
min_price = 0.8
}
}
}
local base_factory = require 'map_gen.presets.crash_site.outpost_data.big_factory'
local base_factory2 = require 'map_gen.presets.crash_site.outpost_data.big_centrifuge'
local level2 = ob.extend_1_way(base_factory[1], {loot = {callback = loot_callback}})
local level3 =
ob.extend_1_way(
base_factory2[2],
{
factory = factory,
fallback = level2,
max_count = 4
}
)
local level3b =
ob.extend_1_way(
base_factory[2],
{
factory = factory_b,
fallback = level3,
max_count = 2
}
)
local level3c =
ob.extend_1_way(
base_factory2[2],
{
factory = factory_c,
fallback = level3b,
max_count = 2
}
)
local level4 =
ob.extend_1_way(
base_factory[3],
{
market = market,
fallback = level3c
}
)
return {
settings = {
blocks = 9,
variance = 3,
min_step = 2,
max_level = 2
},
walls = {
require 'map_gen.presets.crash_site.outpost_data.heavy_gun_turrets'
},
bases = {
{level4, level2}
}
}

View File

@ -33,8 +33,8 @@ local factory = {
local factory_b = {
callback = ob.magic_item_crafting_callback,
data = {
recipe = 'cannon-shell',
output = {min_rate = 1 / 2 / 60, distance_factor = 1 / 2 / 60 / 512, item = 'cannon-shell'}
recipe = 'explosive-cannon-shell',
output = {min_rate = 1 / 2 / 60, distance_factor = 1 / 2 / 60 / 512, item = 'explosive-cannon-shell'}
}
}
@ -42,7 +42,7 @@ local factory_c = {
callback = ob.magic_item_crafting_callback,
data = {
recipe = 'uranium-rounds-magazine',
output = {min_rate = 1 / 4 / 60, distance_factor = 1 / 4 / 60 / 512, item = 'uranium-rounds-magazine'}
output = {min_rate = 0.5 / 60, distance_factor = 0.5 / 60 / 512, item = 'uranium-rounds-magazine'}
}
}
@ -109,7 +109,7 @@ local level3 =
{
factory = factory,
fallback = level2,
max_count = 4
max_count = 5
}
)
local level3b =
@ -118,7 +118,7 @@ local level3b =
{
factory = factory_b,
fallback = level3,
max_count = 2
max_count = 1
}
)
local level3c =

View File

@ -0,0 +1,128 @@
local ob = require 'map_gen.presets.crash_site.outpost_builder'
local level2 =
ob.make_1_way {
force = 'neutral',
[1] = {tile = 'concrete'},
[2] = {tile = 'concrete'},
[3] = {tile = 'concrete'},
[4] = {tile = 'concrete'},
[5] = {tile = 'concrete'},
[6] = {tile = 'concrete'},
[7] = {tile = 'concrete'},
[8] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[9] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[10] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[11] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[12] = {tile = 'concrete'},
[13] = {tile = 'concrete'},
[14] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[15] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[16] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[17] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[18] = {tile = 'concrete'},
[19] = {tile = 'concrete'},
[20] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[21] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[22] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[23] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[24] = {tile = 'concrete'},
[25] = {tile = 'concrete'},
[26] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[27] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[28] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[29] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'refined-concrete'},
[30] = {tile = 'concrete'},
[31] = {tile = 'concrete'},
[32] = {tile = 'concrete'},
[33] = {tile = 'concrete'},
[34] = {tile = 'concrete'},
[35] = {tile = 'concrete'},
[36] = {tile = 'concrete'}
}
local level3 =
ob.make_1_way {
force = 'neutral',
max_count = 6,
[1] = {tile = 'concrete'},
[2] = {tile = 'concrete'},
[3] = {tile = 'concrete'},
[4] = {tile = 'concrete'},
[5] = {tile = 'concrete'},
[6] = {tile = 'concrete'},
[7] = {tile = 'concrete'},
[8] = {tile = 'refined-concrete'},
[9] = {tile = 'refined-concrete'},
[10] = {tile = 'refined-concrete'},
[11] = {tile = 'refined-concrete'},
[12] = {tile = 'concrete'},
[13] = {tile = 'concrete'},
[14] = {tile = 'refined-concrete'},
[15] = {entity = {name = 'centrifuge', callback = 'factory'}, tile = 'refined-concrete'},
[16] = {tile = 'refined-concrete'},
[17] = {tile = 'refined-concrete'},
[18] = {tile = 'concrete'},
[19] = {tile = 'concrete'},
[20] = {tile = 'refined-concrete'},
[21] = {tile = 'refined-concrete'},
[22] = {tile = 'refined-concrete'},
[23] = {tile = 'refined-concrete'},
[24] = {tile = 'concrete'},
[25] = {tile = 'concrete'},
[26] = {tile = 'refined-concrete'},
[27] = {tile = 'refined-concrete'},
[28] = {tile = 'refined-concrete'},
[29] = {tile = 'refined-concrete'},
[30] = {tile = 'concrete'},
[31] = {tile = 'concrete'},
[32] = {tile = 'concrete'},
[33] = {tile = 'concrete'},
[34] = {tile = 'concrete'},
[35] = {tile = 'concrete'},
[36] = {tile = 'concrete'}
}
local level4 =
ob.make_1_way {
force = 'neutral',
max_count = 1,
[1] = {tile = 'concrete'},
[2] = {tile = 'concrete'},
[3] = {tile = 'concrete'},
[4] = {tile = 'concrete'},
[5] = {tile = 'concrete'},
[6] = {tile = 'concrete'},
[7] = {tile = 'concrete'},
[8] = {tile = 'refined-concrete'},
[9] = {tile = 'refined-concrete'},
[10] = {tile = 'refined-concrete'},
[11] = {tile = 'refined-concrete'},
[12] = {tile = 'concrete'},
[13] = {tile = 'concrete'},
[14] = {tile = 'refined-concrete'},
[15] = {entity = {name = 'market', callback = 'market'}},
[16] = {tile = 'refined-concrete'},
[17] = {tile = 'refined-concrete'},
[18] = {tile = 'concrete'},
[19] = {tile = 'concrete'},
[20] = {tile = 'refined-concrete'},
[21] = {tile = 'refined-concrete'},
[22] = {tile = 'refined-concrete'},
[23] = {tile = 'refined-concrete'},
[24] = {tile = 'concrete'},
[25] = {tile = 'concrete'},
[26] = {tile = 'refined-concrete'},
[27] = {tile = 'refined-concrete'},
[28] = {tile = 'refined-concrete'},
[29] = {tile = 'refined-concrete'},
[30] = {tile = 'concrete'},
[31] = {tile = 'concrete'},
[32] = {tile = 'concrete'},
[33] = {tile = 'concrete'},
[34] = {tile = 'concrete'},
[35] = {tile = 'concrete'},
[36] = {tile = 'concrete'}
}
return {level2, level3, level4}

View File

@ -0,0 +1,164 @@
local ob = require 'map_gen.presets.crash_site.outpost_builder'
local Token = require 'utils.global_token'
local loot = {
{weight = 10},
{stack = {name = 'coin', count = 75, distance_factor = 1 / 20}, weight = 5},
{stack = {name = 'coal', count = 1000, distance_factor = 1}, weight = 5},
{stack = {name = 'solid-fuel', count = 750, distance_factor = 1}, weight = 5},
{stack = {name = 'battery', count = 500, distance_factor = 1}, weight = 5},
{stack = {name = 'medium-electric-pole', count = 250, distance_factor = 1 / 2}, weight = 5},
{stack = {name = 'big-electric-pole', count = 50, distance_factor = 1 / 2}, weight = 5},
{stack = {name = 'substation', count = 50, distance_factor = 1 / 2}, weight = 5},
{stack = {name = 'solar-panel', count = 100, distance_factor = 1 / 2}, weight = 5},
{stack = {name = 'accumulator', count = 84, distance_factor = 1 / 2}, weight = 5}
}
local weights = ob.prepare_weighted_loot(loot)
local loot_callback =
Token.register(
function(chest)
ob.do_random_loot(chest, weights, loot)
end
)
local factory = {
callback = ob.magic_item_crafting_callback,
data = {
recipe = 'accumulator',
output = {min_rate = 0.84 / 2 / 60, distance_factor = 0.84 / 2 / 60 / 512, item = 'accumulator'}
}
}
local factory_b = {
callback = ob.magic_item_crafting_callback,
data = {
recipe = 'solar-panel',
output = {min_rate = 1 / 2 / 60, distance_factor = 1 / 2 / 60 / 512, item = 'solar-panel'}
}
}
local market = {
callback = ob.market_set_items_callback,
data = {
{
name = 'coal',
price = 0.5,
distance_factor = 0.25 / 512,
min_price = 0.05
},
{
name = 'solid-fuel',
price = 1.25,
distance_factor = 0.75 / 512,
min_price = 0.125
},
{
name = 'boiler',
price = 3,
distance_factor = 1.5 / 512,
min_price = 0.3
},
{
name = 'steam-engine',
price = 6,
distance_factor = 3 / 512,
min_price = 0.6
},
{
name = 'solar-panel',
price = 12,
distance_factor = 6 / 512,
min_price = 1.2
},
{
name = 'accumulator',
price = 4,
distance_factor = 2 / 512,
min_price = 0.4
},
{
name = 'offshore-pump',
price = 2,
distance_factor = 1 / 512,
min_price = 0.2
},
{
name = 'pipe',
price = 0.25,
distance_factor = 0.125 / 512,
min_price = 0.025
},
{
name = 'pipe-to-ground',
price = 2.5,
distance_factor = 1.25 / 512,
min_price = 0.25
},
{
name = 'medium-electric-pole',
price = 2,
distance_factor = 1 / 512,
min_price = 0.2
},
{
name = 'big-electric-pole',
price = 4,
distance_factor = 2 / 512,
min_price = 0.4
},
{
name = 'substation',
price = 8,
distance_factor = 4 / 512,
min_price = 0.8
}
}
}
local base_factory = require 'map_gen.presets.crash_site.outpost_data.medium_factory'
local level2 = ob.extend_1_way(base_factory[1], {loot = {callback = loot_callback}})
local level3 =
ob.extend_1_way(
base_factory[2],
{
factory = factory,
fallback = level2,
max_count = 2
}
)
local level3b =
ob.extend_1_way(
base_factory[2],
{
factory = factory_b,
fallback = level3,
max_count = 2
}
)
local level4 =
ob.extend_1_way(
base_factory[3],
{
market = market,
fallback = level3b
}
)
return {
settings = {
blocks = 7,
variance = 3,
min_step = 2,
max_level = 2
},
walls = {
require 'map_gen.presets.crash_site.outpost_data.medium_laser_turrets'
},
bases = {
{level4, level2}
}
}

View File

@ -23,7 +23,7 @@ local factory = {
callback = ob.magic_item_crafting_callback,
data = {
recipe = 'military-science-pack',
output = {min_rate = 0.25 / 60, distance_factor = 0.25 / 60 / 512, item = 'military-science-pack'}
output = {min_rate = 0.125 / 60, distance_factor = 0.125 / 60 / 512, item = 'military-science-pack'}
}
}
@ -31,7 +31,7 @@ local factory_b = {
callback = ob.magic_item_crafting_callback,
data = {
recipe = 'science-pack-3',
output = {min_rate = 0.25 / 60, distance_factor = 0.25 / 60 / 512, item = 'science-pack-3'}
output = {min_rate = 0.125 / 60, distance_factor = 0.125 / 60 / 512, item = 'science-pack-3'}
}
}

View File

@ -35,7 +35,7 @@ local factory_b = {
callback = ob.magic_item_crafting_callback,
data = {
recipe = 'piercing-rounds-magazine',
output = {min_rate = 1 / 3 / 60, distance_factor = 1 / 3 / 60 / 512, item = 'piercing-rounds-magazine'}
output = {min_rate = 0.5 / 60, distance_factor = 0.5 / 60 / 512, item = 'piercing-rounds-magazine'}
}
}

View File

@ -0,0 +1,132 @@
local ob = require 'map_gen.presets.crash_site.outpost_builder'
local level2 =
ob.make_1_way {
force = 'neutral',
[1] = {tile = 'stone-path'},
[2] = {tile = 'stone-path'},
[3] = {tile = 'stone-path'},
[4] = {tile = 'stone-path'},
[5] = {tile = 'stone-path'},
[6] = {tile = 'stone-path'},
[7] = {tile = 'stone-path'},
[8] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[9] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[10] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[11] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[12] = {tile = 'stone-path'},
[13] = {tile = 'stone-path'},
[14] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[15] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[16] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[17] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[18] = {tile = 'stone-path'},
[19] = {tile = 'stone-path'},
[20] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[21] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[22] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[23] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[24] = {tile = 'stone-path'},
[25] = {tile = 'stone-path'},
[26] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[27] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[28] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[29] = {entity = {name = 'iron-chest', callback = 'loot'}, tile = 'concrete'},
[30] = {tile = 'stone-path'},
[31] = {tile = 'stone-path'},
[32] = {tile = 'stone-path'},
[33] = {tile = 'stone-path'},
[34] = {tile = 'stone-path'},
[35] = {tile = 'stone-path'},
[36] = {tile = 'stone-path'}
}
local level3 =
ob.make_1_way {
force = 'neutral',
max_count = 4,
[1] = {tile = 'stone-path'},
[2] = {tile = 'stone-path'},
[3] = {tile = 'stone-path'},
[4] = {tile = 'stone-path'},
[5] = {tile = 'stone-path'},
[6] = {tile = 'stone-path'},
[7] = {tile = 'stone-path'},
[8] = {tile = 'concrete'},
[9] = {tile = 'concrete'},
[10] = {tile = 'concrete'},
[11] = {tile = 'concrete'},
[12] = {tile = 'stone-path'},
[13] = {tile = 'stone-path'},
[14] = {tile = 'concrete'},
[15] = {entity = {name = 'centrifuge', callback = 'factory'}, tile = 'concrete'},
[16] = {tile = 'concrete'},
[17] = {tile = 'concrete'},
[18] = {tile = 'stone-path'},
[19] = {tile = 'stone-path'},
[20] = {tile = 'concrete'},
[21] = {tile = 'concrete'},
[22] = {tile = 'concrete'},
[23] = {tile = 'concrete'},
[24] = {tile = 'stone-path'},
[25] = {tile = 'stone-path'},
[26] = {tile = 'concrete'},
[27] = {tile = 'concrete'},
[28] = {tile = 'concrete'},
[29] = {tile = 'concrete'},
[30] = {tile = 'stone-path'},
[31] = {tile = 'stone-path'},
[32] = {tile = 'stone-path'},
[33] = {tile = 'stone-path'},
[34] = {tile = 'stone-path'},
[35] = {tile = 'stone-path'},
[36] = {tile = 'stone-path'}
}
local level4 =
ob.make_1_way {
force = 'neutral',
max_count = 1,
[1] = {tile = 'stone-path'},
[2] = {tile = 'stone-path'},
[3] = {tile = 'stone-path'},
[4] = {tile = 'stone-path'},
[5] = {tile = 'stone-path'},
[6] = {tile = 'stone-path'},
[7] = {tile = 'stone-path'},
[8] = {tile = 'concrete'},
[9] = {tile = 'concrete'},
[10] = {tile = 'concrete'},
[11] = {tile = 'concrete'},
[12] = {tile = 'stone-path'},
[13] = {tile = 'stone-path'},
[14] = {tile = 'concrete'},
[15] = {entity = {name = 'market', callback = 'market'}},
[16] = {tile = 'concrete'},
[17] = {tile = 'concrete'},
[18] = {tile = 'stone-path'},
[19] = {tile = 'stone-path'},
[20] = {tile = 'concrete'},
[21] = {tile = 'concrete'},
[22] = {tile = 'concrete'},
[23] = {tile = 'concrete'},
[24] = {tile = 'stone-path'},
[25] = {tile = 'stone-path'},
[26] = {tile = 'concrete'},
[27] = {tile = 'concrete'},
[28] = {tile = 'concrete'},
[29] = {tile = 'concrete'},
[30] = {tile = 'stone-path'},
[31] = {tile = 'stone-path'},
[32] = {tile = 'stone-path'},
[33] = {tile = 'stone-path'},
[34] = {tile = 'stone-path'},
[35] = {tile = 'stone-path'},
[36] = {tile = 'stone-path'}
}
return {
level2,
level3,
level4
}

View File

@ -23,6 +23,21 @@ local loot_callback =
end
)
local factory = {
callback = ob.magic_item_crafting_callback,
data = {
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 512, item = 'coal'}
}
}
local factory_b = {
callback = ob.magic_item_crafting_callback,
data = {
recipe = 'solid-fuel-from-light-oil',
output = {min_rate = 0.5 / 60, distance_factor = 0.5 / 60 / 512, item = 'solid-fuel'}
}
}
local market = {
callback = ob.market_set_items_callback,
data = {
@ -77,17 +92,27 @@ local market = {
}
}
local base_factory = require 'map_gen.presets.crash_site.outpost_data.small_factory'
local power_factory = require 'map_gen.presets.crash_site.outpost_data.steam_engine_block'
local base_factory = require 'map_gen.presets.crash_site.outpost_data.small_furance'
local base_factory2 = require 'map_gen.presets.crash_site.outpost_data.small_chemical_plant'
local level2 = ob.extend_1_way(base_factory[1], {loot = {callback = loot_callback}})
local level3 =
ob.extend_1_way(
power_factory,
base_factory[2],
{
power = power,
factory = factory,
fallback = level2,
max_count = 4
max_count = 2
}
)
local level3b =
ob.extend_1_way(
base_factory2[2],
{
factory = factory_b,
fallback = level3,
max_count = 2
}
)
@ -96,7 +121,7 @@ local level4 =
base_factory[3],
{
market = market,
fallback = level3
fallback = level3b
}
)
return {
@ -107,9 +132,7 @@ return {
max_level = 2
},
walls = {
--require 'map_gen.presets.crash_site.outpost_data.light_gun_turrets',
--require 'map_gen.presets.crash_site.outpost_data.light_laser_turrets'
require 'map_gen.presets.crash_site.outpost_data.walls'
require 'map_gen.presets.crash_site.outpost_data.light_gun_turrets'
},
bases = {
{level4, level2}

View File

@ -42,8 +42,8 @@ local factory = {
local factory_b = {
callback = ob.magic_item_crafting_callback,
data = {
recipe = 'grenade',
output = {min_rate = 0.2 / 60, distance_factor = 0.2 / 60 / 512, item = 'grenade'}
recipe = 'rocket',
output = {min_rate = 0.2 / 60, distance_factor = 0.2 / 60 / 512, item = 'rocket'}
}
}

View File

@ -23,7 +23,7 @@ local player_ammo_starting_modifiers = {
local player_ammo_research_modifiers = {
['artillery-shell'] = -0.75,
['biological'] = -0.5,
['bullet'] = -0.5,
['bullet'] = -0.35,
['cannon-shell'] = -0.75,
['capsule'] = -0.5,
['combat-robot-beam'] = -0.5,
@ -40,7 +40,7 @@ local player_ammo_research_modifiers = {
}
local player_turrets_research_modifiers = {
['gun-turret'] = -0.65,
['gun-turret'] = -0.5,
--['laser-turret'] = -0.75,
['flamethrower-turret'] = -0.75
}

View File

@ -558,5 +558,12 @@ return {
['Roxmuhr'] = true,
['Asddsa76'] = true,
['bunny232'] = true,
['D_Riv'] = true
['D_Riv'] = true,
['anonymous12123'] = true,
['AmarthZ'] = true,
['numberoverzero'] = true,
['maxim67899'] = true,
['sklipnoty'] = true,
['ThatTallNerd'] = true,
['Presbo'] = true
}