mirror of
https://github.com/Refactorio/RedMew.git
synced 2025-11-06 09:09:26 +02:00
updates
This commit is contained in:
@@ -45,18 +45,34 @@ local half_grid_size = grid_size * 0.5
|
||||
|
||||
local et = OutpostBuilder.empty_template
|
||||
|
||||
local small_gear_factory = require 'map_gen.presets.crash_site.outpost_data.small_gear_factory'
|
||||
local medium_gear_factory = require 'map_gen.presets.crash_site.outpost_data.medium_gear_factory'
|
||||
local big_gear_factory = require 'map_gen.presets.crash_site.outpost_data.big_gear_factory'
|
||||
|
||||
local small_iron_plate_factory = require 'map_gen.presets.crash_site.outpost_data.small_iron_plate_factory'
|
||||
local medium_iron_plate_factory = require 'map_gen.presets.crash_site.outpost_data.medium_iron_plate_factory'
|
||||
local big_iron_plate_factory = require 'map_gen.presets.crash_site.outpost_data.big_iron_plate_factory'
|
||||
|
||||
local small_copper_plate_factory = require 'map_gen.presets.crash_site.outpost_data.small_copper_plate_factory'
|
||||
local medium_copper_plate_factory = require 'map_gen.presets.crash_site.outpost_data.medium_copper_plate_factory'
|
||||
local big_copper_plate_factory = require 'map_gen.presets.crash_site.outpost_data.big_copper_plate_factory'
|
||||
|
||||
local small_gear_factory = require 'map_gen.presets.crash_site.outpost_data.small_gear_factory'
|
||||
local medium_gear_factory = require 'map_gen.presets.crash_site.outpost_data.medium_gear_factory'
|
||||
local big_gear_factory = require 'map_gen.presets.crash_site.outpost_data.big_gear_factory'
|
||||
|
||||
local small_circuit_factory = require 'map_gen.presets.crash_site.outpost_data.small_circuit_factory'
|
||||
local medium_circuit_factory = require 'map_gen.presets.crash_site.outpost_data.medium_circuit_factory'
|
||||
local big_circuit_factory = require 'map_gen.presets.crash_site.outpost_data.big_circuit_factory'
|
||||
|
||||
local small_engine_factory = require 'map_gen.presets.crash_site.outpost_data.small_engine_factory'
|
||||
local medium_engine_factory = require 'map_gen.presets.crash_site.outpost_data.medium_engine_factory'
|
||||
local big_engine_factory = require 'map_gen.presets.crash_site.outpost_data.big_engine_factory'
|
||||
|
||||
local small_ammo_factory = require 'map_gen.presets.crash_site.outpost_data.small_ammo_factory'
|
||||
local medium_ammo_factory = require 'map_gen.presets.crash_site.outpost_data.medium_ammo_factory'
|
||||
local big_ammo_factory = require 'map_gen.presets.crash_site.outpost_data.big_ammo_factory'
|
||||
|
||||
local small_science_factory = require 'map_gen.presets.crash_site.outpost_data.small_science_factory'
|
||||
local medium_science_factory = require 'map_gen.presets.crash_site.outpost_data.medium_science_factory'
|
||||
local big_science_factory = require 'map_gen.presets.crash_site.outpost_data.big_science_factory'
|
||||
|
||||
local stage1 = {
|
||||
{}
|
||||
}
|
||||
@@ -66,7 +82,7 @@ for r = 1, 100 do
|
||||
local row = {}
|
||||
pattern[r] = row
|
||||
for c = 1, 100 do
|
||||
row[c] = outpost_builder:do_outpost(small_circuit_factory)
|
||||
row[c] = outpost_builder:do_outpost(medium_ammo_factory)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -102,7 +118,6 @@ local market = {
|
||||
--[[ for i = 4, 1000 do
|
||||
market.data[i] = market.data[1]
|
||||
end ]]
|
||||
|
||||
local outpost =
|
||||
outpost_builder.to_shape(
|
||||
{
|
||||
@@ -117,5 +132,5 @@ local outpost =
|
||||
local map = b.change_tile(outposts, true, 'grass-1')
|
||||
|
||||
--return b.full_shape
|
||||
--return map
|
||||
return outpost
|
||||
return map
|
||||
--return outpost
|
||||
|
||||
@@ -786,13 +786,10 @@ function Public.make_4_way(data)
|
||||
i4 = i4 + 1
|
||||
elseif offset == 1 then
|
||||
i = i + 1
|
||||
i4 = i4 + 1
|
||||
i2 = i2 + 6
|
||||
elseif offset == 2 then
|
||||
i = i + 6
|
||||
i2 = i2 + 6
|
||||
else
|
||||
i = i
|
||||
i2 = i2
|
||||
i4 = i4 + 1
|
||||
end
|
||||
|
||||
local dir = entity.direction or 0
|
||||
@@ -1065,6 +1062,7 @@ Public.market_set_items_callback =
|
||||
Public.firearm_magazine_ammo = {name = 'firearm-magazine', count = 200}
|
||||
Public.piercing_rounds_magazine_ammo = {name = 'piercing-rounds-magazine', count = 200}
|
||||
Public.uranium_rounds_magazine_ammo = {name = 'uranium-rounds-magazine', count = 200}
|
||||
Public.artillery_shell_ammo = {name = 'artillery-shell', count = 15}
|
||||
Public.light_oil_ammo = {name = 'light-oil', amount = 100}
|
||||
|
||||
Public.laser_turrent_power_source = {buffer_size = 2400000, power_production = 40000}
|
||||
|
||||
41
map_gen/presets/crash_site/outpost_data/artillery_block.lua
Normal file
41
map_gen/presets/crash_site/outpost_data/artillery_block.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
|
||||
return ob.make_1_way {
|
||||
turret = {callback = ob.refill_turret_callback, data = ob.artillery_shell_ammo},
|
||||
[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 = 'artillery-turret', callback = 'turret'}, tile = 'refined-concrete'},
|
||||
[9] = {tile = 'refined-concrete'},
|
||||
[10] = {tile = 'refined-concrete'},
|
||||
[11] = {entity = {name = 'artillery-turret', callback = 'turret', direction = 2}, tile = 'refined-concrete'},
|
||||
[12] = {tile = 'refined-concrete'},
|
||||
[13] = {tile = 'refined-concrete'},
|
||||
[14] = {tile = 'refined-concrete'},
|
||||
[15] = {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] = {entity = {name = 'artillery-turret', callback = 'turret', direction = 6}, tile = 'refined-concrete'},
|
||||
[27] = {tile = 'refined-concrete'},
|
||||
[28] = {tile = 'refined-concrete'},
|
||||
[29] = {entity = {name = 'artillery-turret', callback = 'turret', direction = 4}, 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'}
|
||||
}
|
||||
201
map_gen/presets/crash_site/outpost_data/big_ammo_factory.lua
Normal file
201
map_gen/presets/crash_site/outpost_data/big_ammo_factory.lua
Normal file
@@ -0,0 +1,201 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
{stack = {name = 'coin', count = 750, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'piercing-rounds-magazine', count = 500, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'uranium-rounds-magazine', count = 300, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'piercing-shotgun-shell', count = 200, distance_factor = 1 / 4}, weight = 2},
|
||||
{stack = {name = 'grenade', count = 100, distance_factor = 1 / 8}, weight = 1},
|
||||
{stack = {name = 'land-mine', count = 400, distance_factor = 1}, weight = 1},
|
||||
{stack = {name = 'rocket', count = 200, distance_factor = 1 / 32}, weight = 2},
|
||||
{stack = {name = 'explosive-rocket', count = 200, distance_factor = 1 / 32}, weight = 1},
|
||||
{stack = {name = 'cannon-shell', count = 200, distance_factor = 1 / 32}, weight = 2},
|
||||
{stack = {name = 'explosive-cannon-shell', count = 200, distance_factor = 1 / 32}, weight = 1},
|
||||
{stack = {name = 'cluster-grenade', count = 100, distance_factor = 1 / 32}, weight = 1},
|
||||
{stack = {name = 'poison-capsule', count = 100, distance_factor = 1 / 32}, weight = 1},
|
||||
{stack = {name = 'slowdown-capsule', count = 100, distance_factor = 1 / 32}, weight = 1},
|
||||
{stack = {name = 'destroyer-capsule', count = 20, distance_factor = 1 / 32}, weight = 1}
|
||||
}
|
||||
|
||||
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 = 'piercing-rounds-magazine',
|
||||
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'piercing-rounds-magazine'}
|
||||
}
|
||||
}
|
||||
|
||||
local factory_b = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'cannon-shell',
|
||||
output = {min_rate = 1 / 3 / 60, distance_factor = 1 / 60 / 100, item = 'cannon-shell'}
|
||||
}
|
||||
}
|
||||
|
||||
local factory_c = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'uranium-rounds-magazine',
|
||||
output = {min_rate = 1 / 3 / 60, distance_factor = 1 / 60 / 100, item = 'uranium-rounds-magazine'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'firearm-magazine',
|
||||
price = 1,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.1
|
||||
},
|
||||
{
|
||||
name = 'piercing-rounds-magazine',
|
||||
price = 3,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.3
|
||||
},
|
||||
{
|
||||
name = 'uranium-rounds-magazine',
|
||||
price = 9,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.9
|
||||
},
|
||||
{
|
||||
name = 'shotgun-shell',
|
||||
price = 2,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.2
|
||||
},
|
||||
{
|
||||
name = 'piercing-shotgun-shell',
|
||||
price = 6,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.6
|
||||
},
|
||||
{
|
||||
name = 'grenade',
|
||||
price = 10,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 1
|
||||
},
|
||||
{
|
||||
name = 'land-mine',
|
||||
price = 1,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.1
|
||||
},
|
||||
{
|
||||
name = 'rocket',
|
||||
price = 20,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 2
|
||||
},
|
||||
{
|
||||
name = 'explosive-rocket',
|
||||
price = 40,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 4
|
||||
},
|
||||
{
|
||||
name = 'rocket-launcher',
|
||||
price = 250,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 125
|
||||
},
|
||||
{
|
||||
name = 'cluster-grenade',
|
||||
price = 60,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 6
|
||||
},
|
||||
{
|
||||
name = 'poison-capsule',
|
||||
price = 60,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 6
|
||||
},
|
||||
{
|
||||
name = 'slowdown-capsule',
|
||||
price = 60,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 6
|
||||
},
|
||||
{
|
||||
name = 'cannon-shell',
|
||||
price = 60,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 6
|
||||
},
|
||||
{
|
||||
name = 'explosive-cannon-shell',
|
||||
price = 120,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 12
|
||||
},
|
||||
{
|
||||
name = 'destroyer-capsule',
|
||||
price = 80,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 8
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.big_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
|
||||
}
|
||||
)
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
|
||||
local artillery =
|
||||
ob.extend_1_way(
|
||||
require 'map_gen.presets.crash_site.outpost_data.artillery_block',
|
||||
{fallback = level4, max_count = 1}
|
||||
)
|
||||
|
||||
return {
|
||||
settings = {
|
||||
blocks = 11,
|
||||
variance = 3,
|
||||
min_step = 2,
|
||||
max_level = 5
|
||||
},
|
||||
walls = {
|
||||
require 'map_gen.presets.crash_site.outpost_data.heavy_gun_turrets',
|
||||
require 'map_gen.presets.crash_site.outpost_data.heavy_laser_turrets',
|
||||
require 'map_gen.presets.crash_site.outpost_data.heavy_flame_turrets'
|
||||
},
|
||||
bases = {
|
||||
{require 'map_gen.presets.crash_site.outpost_data.laser_block'},
|
||||
{level2},
|
||||
{level4},
|
||||
{artillery}
|
||||
}
|
||||
}
|
||||
@@ -39,32 +39,28 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
offer = {type = 'give-item', item = 'copper-cable', count = 200},
|
||||
name = 'coin',
|
||||
price = 50,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 5
|
||||
name = 'copper-cable',
|
||||
price = 0.25,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.025
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'electronic-circuit', count = 200},
|
||||
name = 'coin',
|
||||
price = 200,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 10
|
||||
name = 'electronic-circuit',
|
||||
price = 1,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.05
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'advanced-circuit', count = 200},
|
||||
name = 'coin',
|
||||
price = 800,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 40
|
||||
name = 'advanced-circuit',
|
||||
price = 4,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.2
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'processing-unit', count = 200},
|
||||
name = 'coin',
|
||||
price = 2000,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 80
|
||||
name = 'processing-unit',
|
||||
price = 16,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.8
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
{stack = {name = 'coin', count = 2500, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'copper-ore', count = 2400}, weight = 2},
|
||||
{stack = {name = 'copper-cable', count = 1500, distance_factor = 1 / 2}, weight = 2},
|
||||
{stack = {name = 'copper-plate', count = 1000, distance_factor = 1 / 5}, weight = 8}
|
||||
}
|
||||
|
||||
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 = {
|
||||
furance_item = {name = 'copper-ore', count = 100},
|
||||
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'copper-plate'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'copper-cable',
|
||||
price = 0.12,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.012
|
||||
},
|
||||
{
|
||||
name = 'copper-plate',
|
||||
price = 0.3,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.03
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.medium_furance'
|
||||
|
||||
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
|
||||
}
|
||||
)
|
||||
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 9,
|
||||
variance = 3,
|
||||
min_step = 2,
|
||||
max_level = 3
|
||||
},
|
||||
walls = {
|
||||
require 'map_gen.presets.crash_site.outpost_data.heavy_gun_turrets'
|
||||
},
|
||||
bases = {
|
||||
{level2, level3},
|
||||
{level4}
|
||||
}
|
||||
}
|
||||
136
map_gen/presets/crash_site/outpost_data/big_engine_factory.lua
Normal file
136
map_gen/presets/crash_site/outpost_data/big_engine_factory.lua
Normal file
@@ -0,0 +1,136 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
{stack = {name = 'coin', count = 2500, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'engine-unit', count = 500, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'electric-engine-unit', count = 250, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'rail', count = 500, distance_factor = 1}, weight = 1},
|
||||
{stack = {name = 'tank', count = 1, distance_factor = 1 / 128}, weight = 1},
|
||||
{stack = {name = 'locomotive', count = 5, distance_factor = 1 / 128}, weight = 1},
|
||||
{stack = {name = 'cargo-wagon', count = 5, distance_factor = 1 / 128}, weight = 1},
|
||||
{stack = {name = 'fluid-wagon', count = 5, distance_factor = 1 / 128}, weight = 1}
|
||||
}
|
||||
|
||||
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 = 'engine-unit',
|
||||
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'engine-unit'}
|
||||
}
|
||||
}
|
||||
|
||||
local factory_b = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'electric-engine-unit',
|
||||
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'engine-unit'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'engine-unit',
|
||||
price = 4,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.4
|
||||
},
|
||||
{
|
||||
name = 'electric-engine-unit',
|
||||
price = 8,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.8
|
||||
},
|
||||
{
|
||||
name = 'car',
|
||||
price = 50,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 40
|
||||
},
|
||||
{
|
||||
name = 'rail',
|
||||
price = 1,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.1
|
||||
},
|
||||
{
|
||||
name = 'tank',
|
||||
price = 1000,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 250
|
||||
},
|
||||
{
|
||||
name = 'locomotive',
|
||||
price = 100,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 40
|
||||
},
|
||||
{
|
||||
name = 'cargo-wagon',
|
||||
price = 20,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 10
|
||||
},
|
||||
{
|
||||
name = 'fluid-wagon',
|
||||
price = 40,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 20
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.big_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
|
||||
}
|
||||
)
|
||||
local level3b =
|
||||
ob.extend_1_way(
|
||||
base_factory[2],
|
||||
{
|
||||
factory = factory_b,
|
||||
fallback = level2
|
||||
}
|
||||
)
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 9,
|
||||
variance = 3,
|
||||
min_step = 2,
|
||||
max_level = 3
|
||||
},
|
||||
walls = {
|
||||
require 'map_gen.presets.crash_site.outpost_data.heavy_gun_turrets'
|
||||
},
|
||||
bases = {
|
||||
{level3, level3b, level2},
|
||||
{level4}
|
||||
}
|
||||
}
|
||||
132
map_gen/presets/crash_site/outpost_data/big_furance.lua
Normal file
132
map_gen/presets/crash_site/outpost_data/big_furance.lua
Normal 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 = 9,
|
||||
[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 = 'electric-furnace', 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
|
||||
}
|
||||
@@ -18,167 +18,57 @@ local loot_callback =
|
||||
end
|
||||
)
|
||||
|
||||
local level2 =
|
||||
ob.make_1_way {
|
||||
force = 'neutral',
|
||||
loot = {callback = loot_callback},
|
||||
[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',
|
||||
factory = {
|
||||
local factory = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'iron-gear-wheel',
|
||||
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'iron-gear-wheel'}
|
||||
}
|
||||
},
|
||||
max_count = 8,
|
||||
fallback = level2,
|
||||
[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 = 'assembling-machine-2', 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',
|
||||
market = {
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
offer = {type = 'give-item', item = 'iron-gear-wheel', count = 100},
|
||||
name = 'coin',
|
||||
price = 100,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 5
|
||||
name = 'iron-gear-wheel',
|
||||
price = 0.5,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.025
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'iron-plate', count = 100},
|
||||
name = 'coin',
|
||||
price = 80,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 4
|
||||
name = 'iron-plate',
|
||||
price = 0.4,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.02
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'steel-plate', count = 100},
|
||||
name = 'coin',
|
||||
price = 400,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 25
|
||||
name = 'steel-plate',
|
||||
price = 2,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.125
|
||||
}
|
||||
}
|
||||
},
|
||||
max_count = 1,
|
||||
fallback = level3,
|
||||
[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'}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.big_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
|
||||
}
|
||||
)
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 9,
|
||||
|
||||
@@ -18,193 +18,81 @@ local loot_callback =
|
||||
end
|
||||
)
|
||||
|
||||
local level2 =
|
||||
ob.make_1_way {
|
||||
force = 'neutral',
|
||||
loot = {callback = loot_callback},
|
||||
[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',
|
||||
factory = {
|
||||
local factory = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
furance_item = 'iron-ore',
|
||||
furance_item = {name = 'iron-ore', count = 100},
|
||||
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'iron-plate'}
|
||||
}
|
||||
},
|
||||
max_count = 9,
|
||||
fallback = level2,
|
||||
[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 = 'electric-furnace', 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 level3b =
|
||||
ob.extend_1_way(
|
||||
level3,
|
||||
{
|
||||
factory = {
|
||||
local factory_b = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
furance_item = {name = 'iron-plate', count = 100},
|
||||
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'steel-plate'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'iron-plate',
|
||||
price = 0.3,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.03
|
||||
},
|
||||
{
|
||||
name = 'steel-plate',
|
||||
price = 1.5,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.15
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.medium_furance'
|
||||
|
||||
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
|
||||
}
|
||||
)
|
||||
|
||||
local level3b =
|
||||
ob.extend_1_way(
|
||||
base_factory[2],
|
||||
{
|
||||
factory = factory_b,
|
||||
fallback = level2
|
||||
}
|
||||
)
|
||||
|
||||
local level4 =
|
||||
ob.make_1_way {
|
||||
force = 'neutral',
|
||||
market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
offer = {type = 'give-item', item = 'iron-plate', count = 100},
|
||||
name = 'coin',
|
||||
price = 60,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 6
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'steel-plate', count = 100},
|
||||
name = 'coin',
|
||||
price = 300,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 30
|
||||
}
|
||||
}
|
||||
},
|
||||
max_count = 1,
|
||||
fallback = level3,
|
||||
[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'}
|
||||
}
|
||||
|
||||
local level4b =
|
||||
ob.extend_1_way(
|
||||
level4,
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3b
|
||||
}
|
||||
)
|
||||
|
||||
return {
|
||||
settings = {
|
||||
blocks = 9,
|
||||
variance = 3,
|
||||
min_step = 2,
|
||||
max_level = 2
|
||||
max_level = 3
|
||||
},
|
||||
walls = {
|
||||
require 'map_gen.presets.crash_site.outpost_data.heavy_gun_turrets'
|
||||
},
|
||||
bases = {
|
||||
{level4, level4b, level2}
|
||||
{level2, level3},
|
||||
{level4}
|
||||
}
|
||||
}
|
||||
|
||||
123
map_gen/presets/crash_site/outpost_data/big_science_factory.lua
Normal file
123
map_gen/presets/crash_site/outpost_data/big_science_factory.lua
Normal file
@@ -0,0 +1,123 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
{stack = {name = 'coin', count = 2500, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'science-pack-1', count = 200, distance_factor = 1 / 10}, weight = 2},
|
||||
{stack = {name = 'science-pack-2', count = 100, distance_factor = 1 / 10}, weight = 2},
|
||||
{stack = {name = 'military-science-pack', count = 75, distance_factor = 1 / 10}, weight = 3},
|
||||
{stack = {name = 'science-pack-3', count = 75, distance_factor = 1 / 10}, weight = 3},
|
||||
{stack = {name = 'production-science-pack', count = 50, distance_factor = 1 / 10}, weight = 5},
|
||||
{stack = {name = 'high-tech-science-pack', count = 50, distance_factor = 1 / 10}, 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 = 'production-science-pack',
|
||||
output = {min_rate = 0.1 / 60, distance_factor = 1 / 60 / 1000, item = 'production-science-pack'}
|
||||
}
|
||||
}
|
||||
|
||||
local factory_b = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'high-tech-science-pack',
|
||||
output = {min_rate = 0.1 / 60, distance_factor = 1 / 60 / 1000, item = 'high-tech-science-pack'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'science-pack-1',
|
||||
price = 10,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 1
|
||||
},
|
||||
{
|
||||
name = 'science-pack-2',
|
||||
price = 20,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 2
|
||||
},
|
||||
{
|
||||
name = 'military-science-pack',
|
||||
price = 40,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 4
|
||||
},
|
||||
{
|
||||
name = 'science-pack-3',
|
||||
price = 60,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 4
|
||||
},
|
||||
{
|
||||
name = 'production-science-pack',
|
||||
price = 120,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 4
|
||||
},
|
||||
{
|
||||
name = 'high-tech-science-pack',
|
||||
price = 180,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 4
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.big_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
|
||||
}
|
||||
)
|
||||
local level3b =
|
||||
ob.extend_1_way(
|
||||
base_factory[2],
|
||||
{
|
||||
factory = factory_b,
|
||||
fallback = level2
|
||||
}
|
||||
)
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3b
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 9,
|
||||
variance = 3,
|
||||
min_step = 2,
|
||||
max_level = 3
|
||||
},
|
||||
walls = {
|
||||
require 'map_gen.presets.crash_site.outpost_data.heavy_laser_turrets'
|
||||
},
|
||||
bases = {
|
||||
{level3, level2},
|
||||
{level4}
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
|
||||
return {
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {entity = {name = 'stone-wall'}},
|
||||
@@ -26,11 +27,20 @@ return {
|
||||
[22] = {tile = 'refined-hazard-concrete-left'},
|
||||
[23] = {tile = 'refined-hazard-concrete-left'},
|
||||
[24] = {tile = 'refined-hazard-concrete-left'},
|
||||
[25] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'refined-hazard-concrete-left'},
|
||||
[25] = {
|
||||
entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[26] = {tile = 'refined-hazard-concrete-left'},
|
||||
[27] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'refined-hazard-concrete-left'},
|
||||
[27] = {
|
||||
entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[28] = {tile = 'refined-hazard-concrete-left'},
|
||||
[29] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'refined-hazard-concrete-left'},
|
||||
[29] = {
|
||||
entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[30] = {tile = 'refined-hazard-concrete-left'},
|
||||
[31] = {tile = 'refined-hazard-concrete-left'},
|
||||
[32] = {tile = 'refined-hazard-concrete-left'},
|
||||
@@ -40,6 +50,7 @@ return {
|
||||
[36] = {tile = 'refined-hazard-concrete-left'}
|
||||
},
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {entity = {name = 'stone-wall'}},
|
||||
@@ -54,9 +65,15 @@ return {
|
||||
[12] = {tile = 'refined-hazard-concrete-left'},
|
||||
[13] = {entity = {name = 'stone-wall'}},
|
||||
[14] = {entity = {name = 'stone-wall'}},
|
||||
[15] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'refined-hazard-concrete-left'},
|
||||
[15] = {
|
||||
entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[16] = {tile = 'refined-hazard-concrete-left'},
|
||||
[17] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'refined-hazard-concrete-left'},
|
||||
[17] = {
|
||||
entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[18] = {tile = 'refined-hazard-concrete-left'},
|
||||
[19] = {entity = {name = 'stone-wall'}},
|
||||
[20] = {entity = {name = 'stone-wall'}},
|
||||
@@ -67,7 +84,7 @@ return {
|
||||
[25] = {entity = {name = 'stone-wall'}},
|
||||
[26] = {tile = 'refined-hazard-concrete-left'},
|
||||
[27] = {
|
||||
entity = {name = 'flamethrower-turret', direction = 6, offset = 2},
|
||||
entity = {name = 'flamethrower-turret', callback = 'turret', direction = 6, offset = 2},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[28] = {tile = 'refined-hazard-concrete-left'},
|
||||
@@ -81,6 +98,7 @@ return {
|
||||
[36] = {tile = 'refined-hazard-concrete-left'}
|
||||
},
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {tile = 'refined-hazard-concrete-left'},
|
||||
@@ -92,7 +110,7 @@ return {
|
||||
[9] = {tile = 'refined-hazard-concrete-left'},
|
||||
[10] = {tile = 'refined-hazard-concrete-left'},
|
||||
[11] = {
|
||||
entity = {name = 'flamethrower-turret', direction = 6, offset = 2},
|
||||
entity = {name = 'flamethrower-turret', callback = 'turret', direction = 6, offset = 2},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[12] = {tile = 'refined-hazard-concrete-left'},
|
||||
@@ -108,11 +126,20 @@ return {
|
||||
[22] = {tile = 'refined-hazard-concrete-left'},
|
||||
[23] = {tile = 'refined-hazard-concrete-left'},
|
||||
[24] = {tile = 'refined-hazard-concrete-left'},
|
||||
[25] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'refined-hazard-concrete-left'},
|
||||
[25] = {
|
||||
entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[26] = {tile = 'refined-hazard-concrete-left'},
|
||||
[27] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'refined-hazard-concrete-left'},
|
||||
[27] = {
|
||||
entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[28] = {tile = 'refined-hazard-concrete-left'},
|
||||
[29] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'refined-hazard-concrete-left'},
|
||||
[29] = {
|
||||
entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[30] = {tile = 'refined-hazard-concrete-left'},
|
||||
[31] = {tile = 'refined-hazard-concrete-left'},
|
||||
[32] = {tile = 'refined-hazard-concrete-left'},
|
||||
|
||||
@@ -2,44 +2,61 @@ local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
|
||||
return {
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {tile = 'concrete'},
|
||||
[4] = {tile = 'hazard-concrete-left'},
|
||||
[5] = {tile = 'concrete'},
|
||||
[6] = {tile = 'hazard-concrete-left'},
|
||||
[3] = {entity = {name = 'stone-wall'}},
|
||||
[4] = {entity = {name = 'stone-wall'}},
|
||||
[5] = {entity = {name = 'stone-wall'}},
|
||||
[6] = {entity = {name = 'stone-wall'}},
|
||||
[7] = {entity = {name = 'stone-wall'}},
|
||||
[8] = {entity = {name = 'stone-wall'}},
|
||||
[9] = {tile = 'hazard-concrete-left'},
|
||||
[10] = {entity = {name = 'laser-turret', offset = 3}, tile = 'concrete'},
|
||||
[11] = {tile = 'hazard-concrete-left'},
|
||||
[12] = {tile = 'concrete'},
|
||||
[13] = {tile = 'concrete'},
|
||||
[14] = {tile = 'hazard-concrete-left'},
|
||||
[15] = {tile = 'concrete'},
|
||||
[16] = {tile = 'hazard-concrete-left'},
|
||||
[17] = {tile = 'concrete'},
|
||||
[18] = {tile = 'hazard-concrete-left'},
|
||||
[19] = {tile = 'hazard-concrete-left'},
|
||||
[20] = {entity = {name = 'laser-turret', offset = 3}, tile = 'concrete'},
|
||||
[21] = {tile = 'hazard-concrete-left'},
|
||||
[22] = {tile = 'concrete'},
|
||||
[23] = {tile = 'hazard-concrete-left'},
|
||||
[24] = {tile = 'concrete'},
|
||||
[25] = {tile = 'concrete'},
|
||||
[26] = {tile = 'hazard-concrete-left'},
|
||||
[27] = {tile = 'concrete'},
|
||||
[28] = {tile = 'hazard-concrete-left'},
|
||||
[29] = {tile = 'concrete'},
|
||||
[30] = {entity = {name = 'medium-electric-pole'}, tile = 'hazard-concrete-left'},
|
||||
[31] = {tile = 'hazard-concrete-left'},
|
||||
[32] = {tile = 'concrete'},
|
||||
[33] = {tile = 'hazard-concrete-left'},
|
||||
[34] = {tile = 'concrete'},
|
||||
[35] = {entity = {name = 'medium-electric-pole'}, tile = 'hazard-concrete-left'},
|
||||
[36] = {tile = 'concrete'}
|
||||
[9] = {entity = {name = 'stone-wall'}},
|
||||
[10] = {entity = {name = 'stone-wall'}},
|
||||
[11] = {entity = {name = 'stone-wall'}},
|
||||
[12] = {entity = {name = 'stone-wall'}},
|
||||
[13] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[14] = {tile = 'refined-hazard-concrete-left'},
|
||||
[15] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[16] = {tile = 'refined-hazard-concrete-left'},
|
||||
[17] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[18] = {tile = 'refined-hazard-concrete-left'},
|
||||
[19] = {tile = 'refined-hazard-concrete-left'},
|
||||
[20] = {tile = 'refined-hazard-concrete-left'},
|
||||
[21] = {tile = 'refined-hazard-concrete-left'},
|
||||
[22] = {tile = 'refined-hazard-concrete-left'},
|
||||
[23] = {tile = 'refined-hazard-concrete-left'},
|
||||
[24] = {tile = 'refined-hazard-concrete-left'},
|
||||
[25] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[26] = {tile = 'refined-hazard-concrete-left'},
|
||||
[27] = {entity = {name = 'substation', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||
[28] = {tile = 'refined-hazard-concrete-left'},
|
||||
[29] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[30] = {tile = 'refined-hazard-concrete-left'},
|
||||
[31] = {tile = 'refined-hazard-concrete-left'},
|
||||
[32] = {tile = 'refined-hazard-concrete-left'},
|
||||
[33] = {tile = 'refined-hazard-concrete-left'},
|
||||
[34] = {tile = 'refined-hazard-concrete-left'},
|
||||
[35] = {tile = 'refined-hazard-concrete-left'},
|
||||
[36] = {tile = 'refined-hazard-concrete-left'}
|
||||
},
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {entity = {name = 'stone-wall'}},
|
||||
@@ -54,9 +71,15 @@ return {
|
||||
[12] = {entity = {name = 'stone-wall'}},
|
||||
[13] = {entity = {name = 'stone-wall'}},
|
||||
[14] = {entity = {name = 'stone-wall'}},
|
||||
[15] = {entity = {name = 'laser-turret', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||
[15] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[16] = {tile = 'refined-hazard-concrete-left'},
|
||||
[17] = {entity = {name = 'laser-turret', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||
[17] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', direction = 2, offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[18] = {tile = 'refined-hazard-concrete-left'},
|
||||
[19] = {entity = {name = 'stone-wall'}},
|
||||
[20] = {entity = {name = 'stone-wall'}},
|
||||
@@ -66,7 +89,10 @@ return {
|
||||
[24] = {tile = 'refined-hazard-concrete-left'},
|
||||
[25] = {entity = {name = 'stone-wall'}},
|
||||
[26] = {entity = {name = 'stone-wall'}},
|
||||
[27] = {entity = {name = 'laser-turret', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||
[27] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', direction = 2, offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[28] = {tile = 'refined-hazard-concrete-left'},
|
||||
[29] = {entity = {name = 'substation', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||
[30] = {tile = 'refined-hazard-concrete-left'},
|
||||
@@ -78,11 +104,18 @@ return {
|
||||
[36] = {tile = 'refined-hazard-concrete-left'}
|
||||
},
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {entity = {name = 'laser-turret', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||
[3] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', direction = 2, offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[4] = {tile = 'refined-hazard-concrete-left'},
|
||||
[5] = {entity = {name = 'laser-turret', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||
[5] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', direction = 2, offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[6] = {tile = 'refined-hazard-concrete-left'},
|
||||
[7] = {entity = {name = 'stone-wall'}},
|
||||
[8] = {entity = {name = 'stone-wall'}},
|
||||
@@ -90,11 +123,20 @@ return {
|
||||
[10] = {tile = 'refined-hazard-concrete-left'},
|
||||
[11] = {tile = 'refined-hazard-concrete-left'},
|
||||
[12] = {tile = 'refined-hazard-concrete-left'},
|
||||
[13] = {entity = {name = 'laser-turret', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||
[13] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', direction = 2, offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[14] = {tile = 'refined-hazard-concrete-left'},
|
||||
[15] = {entity = {name = 'laser-turret', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||
[15] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', direction = 2, offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[16] = {tile = 'refined-hazard-concrete-left'},
|
||||
[17] = {entity = {name = 'laser-turret', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||
[17] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', direction = 2, offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[18] = {tile = 'refined-hazard-concrete-left'},
|
||||
[19] = {tile = 'refined-hazard-concrete-left'},
|
||||
[20] = {tile = 'refined-hazard-concrete-left'},
|
||||
@@ -102,9 +144,15 @@ return {
|
||||
[22] = {tile = 'refined-hazard-concrete-left'},
|
||||
[23] = {tile = 'refined-hazard-concrete-left'},
|
||||
[24] = {tile = 'refined-hazard-concrete-left'},
|
||||
[25] = {entity = {name = 'laser-turret', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||
[25] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', direction = 2, offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[26] = {tile = 'refined-hazard-concrete-left'},
|
||||
[27] = {entity = {name = 'laser-turret', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||
[27] = {
|
||||
entity = {name = 'laser-turret', callback = 'turret', direction = 2, offset = 3},
|
||||
tile = 'refined-hazard-concrete-left'
|
||||
},
|
||||
[28] = {tile = 'refined-hazard-concrete-left'},
|
||||
[29] = {entity = {name = 'substation', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||
[30] = {tile = 'refined-hazard-concrete-left'},
|
||||
|
||||
41
map_gen/presets/crash_site/outpost_data/laser_block.lua
Normal file
41
map_gen/presets/crash_site/outpost_data/laser_block.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
|
||||
return ob.make_1_way {
|
||||
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||
[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 = 'laser-turret', callback = 'turret'}, tile = 'refined-concrete'},
|
||||
[9] = {tile = 'refined-concrete'},
|
||||
[10] = {entity = {name = 'laser-turret', callback = 'turret'}, tile = 'refined-concrete'},
|
||||
[11] = {tile = 'refined-concrete'},
|
||||
[12] = {entity = {name = 'laser-turret', callback = 'turret'}, tile = 'refined-concrete'},
|
||||
[13] = {tile = 'refined-concrete'},
|
||||
[14] = {tile = 'refined-concrete'},
|
||||
[15] = {tile = 'refined-concrete'},
|
||||
[16] = {tile = 'refined-concrete'},
|
||||
[17] = {tile = 'refined-concrete'},
|
||||
[18] = {tile = 'refined-concrete'},
|
||||
[19] = {tile = 'refined-concrete'},
|
||||
[20] = {entity = {name = 'laser-turret', callback = 'turret'}, tile = 'refined-concrete'},
|
||||
[21] = {tile = 'refined-concrete'},
|
||||
[22] = {entity = {name = 'substation'}, tile = 'refined-concrete'},
|
||||
[23] = {tile = 'refined-concrete'},
|
||||
[24] = {entity = {name = 'laser-turret', callback = 'turret'}, 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] = {entity = {name = 'laser-turret', callback = 'turret'}, tile = 'refined-concrete'},
|
||||
[33] = {tile = 'refined-concrete'},
|
||||
[34] = {entity = {name = 'laser-turret', callback = 'turret'}, tile = 'refined-concrete'},
|
||||
[35] = {tile = 'refined-concrete'},
|
||||
[36] = {entity = {name = 'laser-turret', callback = 'turret'}, tile = 'refined-concrete'}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
|
||||
return {
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {entity = {name = 'stone-wall'}},
|
||||
@@ -28,7 +29,7 @@ return {
|
||||
[24] = {tile = 'concrete'},
|
||||
[25] = {tile = 'concrete'},
|
||||
[26] = {tile = 'concrete'},
|
||||
[27] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'concrete'},
|
||||
[27] = {entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1}, tile = 'concrete'},
|
||||
[28] = {tile = 'concrete'},
|
||||
[29] = {tile = 'concrete'},
|
||||
[30] = {tile = 'concrete'},
|
||||
@@ -40,6 +41,7 @@ return {
|
||||
[36] = {tile = 'concrete'}
|
||||
},
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {entity = {name = 'stone-wall'}},
|
||||
@@ -67,7 +69,7 @@ return {
|
||||
[25] = {entity = {name = 'stone-wall'}},
|
||||
[26] = {entity = {name = 'stone-wall'}},
|
||||
[27] = {tile = 'hazard-concrete-left'},
|
||||
[28] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'concrete'},
|
||||
[28] = {entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1}, tile = 'concrete'},
|
||||
[29] = {tile = 'concrete'},
|
||||
[30] = {tile = 'concrete'},
|
||||
[31] = {entity = {name = 'stone-wall'}},
|
||||
@@ -78,6 +80,7 @@ return {
|
||||
[36] = {tile = 'concrete'}
|
||||
},
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {tile = 'hazard-concrete-left'},
|
||||
@@ -105,7 +108,7 @@ return {
|
||||
[25] = {tile = 'concrete'},
|
||||
[26] = {tile = 'concrete'},
|
||||
[27] = {tile = 'concrete'},
|
||||
[28] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'concrete'},
|
||||
[28] = {entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1}, tile = 'concrete'},
|
||||
[29] = {tile = 'concrete'},
|
||||
[30] = {tile = 'concrete'},
|
||||
[31] = {tile = 'concrete'},
|
||||
|
||||
@@ -2,6 +2,7 @@ local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
|
||||
return {
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {entity = {name = 'stone-wall'}},
|
||||
@@ -22,7 +23,7 @@ return {
|
||||
[18] = {tile = 'concrete'},
|
||||
[19] = {tile = 'hazard-concrete-left'},
|
||||
[20] = {tile = 'concrete'},
|
||||
[21] = {entity = {name = 'laser-turret', offset = 3}, tile = 'hazard-concrete-left'},
|
||||
[21] = {entity = {name = 'laser-turret', callback = 'turret', offset = 3}, tile = 'hazard-concrete-left'},
|
||||
[22] = {tile = 'concrete'},
|
||||
[23] = {tile = 'hazard-concrete-left'},
|
||||
[24] = {tile = 'concrete'},
|
||||
@@ -40,6 +41,7 @@ return {
|
||||
[36] = {tile = 'concrete'}
|
||||
},
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {entity = {name = 'stone-wall'}},
|
||||
@@ -61,7 +63,7 @@ return {
|
||||
[19] = {entity = {name = 'stone-wall'}},
|
||||
[20] = {entity = {name = 'stone-wall'}},
|
||||
[21] = {tile = 'hazard-concrete-left'},
|
||||
[22] = {entity = {name = 'laser-turret', offset = 3}, tile = 'concrete'},
|
||||
[22] = {entity = {name = 'laser-turret', callback = 'turret', offset = 3}, tile = 'concrete'},
|
||||
[23] = {tile = 'hazard-concrete-left'},
|
||||
[24] = {tile = 'concrete'},
|
||||
[25] = {entity = {name = 'stone-wall'}},
|
||||
@@ -78,6 +80,7 @@ return {
|
||||
[36] = {entity = {name = 'medium-electric-pole'}, tile = 'concrete'}
|
||||
},
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {tile = 'concrete'},
|
||||
@@ -99,7 +102,7 @@ return {
|
||||
[19] = {tile = 'hazard-concrete-left'},
|
||||
[20] = {tile = 'concrete'},
|
||||
[21] = {tile = 'hazard-concrete-left'},
|
||||
[22] = {entity = {name = 'laser-turret', offset = 3}, tile = 'concrete'},
|
||||
[22] = {entity = {name = 'laser-turret', callback = 'turret', offset = 3}, tile = 'concrete'},
|
||||
[23] = {tile = 'hazard-concrete-left'},
|
||||
[24] = {tile = 'concrete'},
|
||||
[25] = {tile = 'concrete'},
|
||||
|
||||
209
map_gen/presets/crash_site/outpost_data/medium_ammo_factory.lua
Normal file
209
map_gen/presets/crash_site/outpost_data/medium_ammo_factory.lua
Normal file
@@ -0,0 +1,209 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
{stack = {name = 'coin', count = 750, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'piercing-rounds-magazine', count = 500, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'uranium-rounds-magazine', count = 300, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'piercing-shotgun-shell', count = 200, distance_factor = 1 / 4}, weight = 2},
|
||||
{stack = {name = 'grenade', count = 100, distance_factor = 1 / 8}, weight = 1},
|
||||
{stack = {name = 'land-mine', count = 400, distance_factor = 1}, weight = 1},
|
||||
{stack = {name = 'rocket', count = 200, distance_factor = 1 / 32}, weight = 2},
|
||||
{stack = {name = 'explosive-rocket', count = 200, distance_factor = 1 / 32}, weight = 1},
|
||||
{stack = {name = 'cannon-shell', count = 200, distance_factor = 1 / 32}, weight = 2},
|
||||
{stack = {name = 'explosive-cannon-shell', count = 200, distance_factor = 1 / 32}, weight = 1},
|
||||
{stack = {name = 'cluster-grenade', count = 100, distance_factor = 1 / 32}, weight = 1},
|
||||
{stack = {name = 'poison-capsule', count = 100, distance_factor = 1 / 32}, weight = 1},
|
||||
{stack = {name = 'slowdown-capsule', count = 100, distance_factor = 1 / 32}, weight = 1},
|
||||
{stack = {name = 'destroyer-capsule', count = 20, distance_factor = 1 / 32}, weight = 1}
|
||||
}
|
||||
|
||||
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 = 'piercing-rounds-magazine',
|
||||
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'piercing-rounds-magazine'}
|
||||
}
|
||||
}
|
||||
|
||||
local factory_b = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'cannon-shell',
|
||||
output = {min_rate = 1 / 3 / 60, distance_factor = 1 / 60 / 100, item = 'cannon-shell'}
|
||||
}
|
||||
}
|
||||
|
||||
local factory_c = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'uranium-rounds-magazine',
|
||||
output = {min_rate = 1 / 3 / 60, distance_factor = 1 / 60 / 100, item = 'uranium-rounds-magazine'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'firearm-magazine',
|
||||
price = 1,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.1
|
||||
},
|
||||
{
|
||||
name = 'piercing-rounds-magazine',
|
||||
price = 3,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.3
|
||||
},
|
||||
{
|
||||
name = 'uranium-rounds-magazine',
|
||||
price = 9,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.9
|
||||
},
|
||||
{
|
||||
name = 'shotgun-shell',
|
||||
price = 2,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.2
|
||||
},
|
||||
{
|
||||
name = 'piercing-shotgun-shell',
|
||||
price = 6,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.6
|
||||
},
|
||||
{
|
||||
name = 'grenade',
|
||||
price = 10,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 1
|
||||
},
|
||||
{
|
||||
name = 'land-mine',
|
||||
price = 1,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.1
|
||||
},
|
||||
{
|
||||
name = 'rocket',
|
||||
price = 20,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 2
|
||||
},
|
||||
{
|
||||
name = 'explosive-rocket',
|
||||
price = 40,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 4
|
||||
},
|
||||
{
|
||||
name = 'rocket-launcher',
|
||||
price = 250,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 125
|
||||
},
|
||||
{
|
||||
name = 'cluster-grenade',
|
||||
price = 60,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 6
|
||||
},
|
||||
{
|
||||
name = 'poison-capsule',
|
||||
price = 60,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 6
|
||||
},
|
||||
{
|
||||
name = 'slowdown-capsule',
|
||||
price = 60,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 6
|
||||
},
|
||||
{
|
||||
name = 'cannon-shell',
|
||||
price = 60,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 6
|
||||
},
|
||||
{
|
||||
name = 'explosive-cannon-shell',
|
||||
price = 120,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 12
|
||||
},
|
||||
{
|
||||
name = 'destroyer-capsule',
|
||||
price = 80,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 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
|
||||
}
|
||||
)
|
||||
local level3b =
|
||||
ob.extend_1_way(
|
||||
base_factory[2],
|
||||
{
|
||||
factory = factory_b,
|
||||
fallback = level3,
|
||||
max_count = 2
|
||||
}
|
||||
)
|
||||
local level3c =
|
||||
ob.extend_1_way(
|
||||
base_factory[2],
|
||||
{
|
||||
factory = factory_c,
|
||||
fallback = level3b,
|
||||
max_count = 1
|
||||
}
|
||||
)
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3c
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 8,
|
||||
variance = 3,
|
||||
min_step = 2,
|
||||
max_level = 2
|
||||
},
|
||||
walls = {
|
||||
require 'map_gen.presets.crash_site.outpost_data.heavy_gun_turrets',
|
||||
require 'map_gen.presets.crash_site.outpost_data.heavy_laser_turrets',
|
||||
require 'map_gen.presets.crash_site.outpost_data.heavy_flame_turrets'
|
||||
},
|
||||
bases = {
|
||||
{level4, level2}
|
||||
}
|
||||
}
|
||||
@@ -31,32 +31,28 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
offer = {type = 'give-item', item = 'copper-cable', count = 200},
|
||||
name = 'coin',
|
||||
price = 50,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 5
|
||||
name = 'copper-cable',
|
||||
price = 0.25,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.025
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'electronic-circuit', count = 200},
|
||||
name = 'coin',
|
||||
price = 200,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 10
|
||||
name= 'electronic-circuit',
|
||||
price = 1,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.05
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'advanced-circuit', count = 200},
|
||||
name = 'coin',
|
||||
price = 800,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 40
|
||||
name= 'advanced-circuit',
|
||||
price = 4,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.2
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'processing-unit', count = 200},
|
||||
name = 'coin',
|
||||
price = 8000,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 80
|
||||
name = 'processing-unit',
|
||||
price = 40,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.8
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
{stack = {name = 'coin', count = 750, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'copper-ore', count = 2400}, weight = 8},
|
||||
{stack = {name = 'copper-cable', count = 750, distance_factor = 1 / 2}, weight = 2},
|
||||
{stack = {name = 'copper-plate', count = 750, distance_factor = 1 / 5}, weight = 10}
|
||||
}
|
||||
|
||||
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 = {
|
||||
furance_item = 'copper-ore',
|
||||
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'copper-plate'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'copper-cable',
|
||||
price = 0.12,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.012
|
||||
},
|
||||
{
|
||||
name = 'copper-plate',
|
||||
price = 0.3,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.03
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.medium_furance'
|
||||
|
||||
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
|
||||
}
|
||||
)
|
||||
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 7,
|
||||
variance = 3,
|
||||
min_step = 2,
|
||||
max_level = 2
|
||||
},
|
||||
walls = {
|
||||
require 'map_gen.presets.crash_site.outpost_data.medium_gun_turrets'
|
||||
},
|
||||
bases = {
|
||||
{level4, level2}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,136 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
{stack = {name = 'coin', count = 750, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'engine-unit', count = 200, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'electric-engine-unit', count = 100, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'rail', count = 500, distance_factor = 1}, weight = 2},
|
||||
{stack = {name = 'tank', count = 1, distance_factor = 1 / 128}, weight = 2},
|
||||
{stack = {name = 'locomotive', count = 5, distance_factor = 1 / 128}, weight = 2},
|
||||
{stack = {name = 'cargo-wagon', count = 5, distance_factor = 1 / 128}, weight = 2},
|
||||
{stack = {name = 'fluid-wagon', count = 5, distance_factor = 1 / 128}, weight = 2}
|
||||
}
|
||||
|
||||
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 = 'engine-unit',
|
||||
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'engine-unit'}
|
||||
}
|
||||
}
|
||||
|
||||
local factory_b = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'electric-engine-unit',
|
||||
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'engine-unit'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'engine-unit',
|
||||
price = 4,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.4
|
||||
},
|
||||
{
|
||||
name = 'electric-engine-unit',
|
||||
price = 8,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.8
|
||||
},
|
||||
{
|
||||
name = 'car',
|
||||
price = 50,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 40
|
||||
},
|
||||
{
|
||||
name = 'rail',
|
||||
price = 1,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.1
|
||||
},
|
||||
{
|
||||
name = 'tank',
|
||||
price = 1000,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 250
|
||||
},
|
||||
{
|
||||
name = 'locomotive',
|
||||
price = 100,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 40
|
||||
},
|
||||
{
|
||||
name = 'cargo-wagon',
|
||||
price = 20,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 10
|
||||
},
|
||||
{
|
||||
name = 'fluid-wagon',
|
||||
price = 40,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 20
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
)
|
||||
local level3b =
|
||||
ob.extend_1_way(
|
||||
base_factory[2],
|
||||
{
|
||||
factory = factory_b,
|
||||
fallback = level2
|
||||
}
|
||||
)
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 7,
|
||||
variance = 3,
|
||||
min_step = 2,
|
||||
max_level = 3
|
||||
},
|
||||
walls = {
|
||||
require 'map_gen.presets.crash_site.outpost_data.medium_gun_turrets'
|
||||
},
|
||||
bases = {
|
||||
{level3, level3b, level2},
|
||||
{level4}
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
|
||||
return {
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {entity = {name = 'stone-wall'}},
|
||||
@@ -26,11 +27,11 @@ return {
|
||||
[22] = {tile = 'concrete'},
|
||||
[23] = {tile = 'concrete'},
|
||||
[24] = {tile = 'concrete'},
|
||||
[25] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'concrete'},
|
||||
[25] = {entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1}, tile = 'concrete'},
|
||||
[26] = {tile = 'concrete'},
|
||||
[27] = {tile = 'concrete'},
|
||||
[28] = {tile = 'concrete'},
|
||||
[29] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'concrete'},
|
||||
[29] = {entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1}, tile = 'concrete'},
|
||||
[30] = {tile = 'concrete'},
|
||||
[31] = {tile = 'concrete'},
|
||||
[32] = {tile = 'concrete'},
|
||||
@@ -40,6 +41,7 @@ return {
|
||||
[36] = {tile = 'concrete'}
|
||||
},
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {entity = {name = 'stone-wall'}},
|
||||
@@ -56,7 +58,7 @@ return {
|
||||
[14] = {entity = {name = 'stone-wall'}},
|
||||
[15] = {entity = {name = 'gun-turret', offset = 3}, tile = 'hazard-concrete-left'},
|
||||
[16] = {tile = 'hazard-concrete-left'},
|
||||
[17] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'hazard-concrete-left'},
|
||||
[17] = {entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1}, tile = 'hazard-concrete-left'},
|
||||
[18] = {tile = 'hazard-concrete-left'},
|
||||
[19] = {entity = {name = 'stone-wall'}},
|
||||
[20] = {entity = {name = 'stone-wall'}},
|
||||
@@ -66,7 +68,10 @@ return {
|
||||
[24] = {tile = 'hazard-concrete-left'},
|
||||
[25] = {entity = {name = 'stone-wall'}},
|
||||
[26] = {tile = 'hazard-concrete-left'},
|
||||
[27] = {entity = {name = 'flamethrower-turret', direction = 6, offset = 2}, tile = 'hazard-concrete-left'},
|
||||
[27] = {
|
||||
entity = {name = 'flamethrower-turret', callback = 'turret', direction = 6, offset = 2},
|
||||
tile = 'hazard-concrete-left'
|
||||
},
|
||||
[28] = {tile = 'hazard-concrete-left'},
|
||||
[29] = {entity = {name = 'gun-turret', offset = 3}, tile = 'concrete'},
|
||||
[30] = {tile = 'concrete'},
|
||||
@@ -78,6 +83,7 @@ return {
|
||||
[36] = {tile = 'concrete'}
|
||||
},
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {tile = 'hazard-concrete-left'},
|
||||
@@ -88,7 +94,10 @@ return {
|
||||
[8] = {entity = {name = 'stone-wall'}},
|
||||
[9] = {tile = 'hazard-concrete-left'},
|
||||
[10] = {tile = 'concrete'},
|
||||
[11] = {entity = {name = 'flamethrower-turret', direction = 6, offset = 2}, tile = 'concrete'},
|
||||
[11] = {
|
||||
entity = {name = 'flamethrower-turret', callback = 'turret', direction = 6, offset = 2},
|
||||
tile = 'concrete'
|
||||
},
|
||||
[12] = {tile = 'concrete'},
|
||||
[13] = {tile = 'hazard-concrete-left'},
|
||||
[14] = {tile = 'hazard-concrete-left'},
|
||||
@@ -103,7 +112,7 @@ return {
|
||||
[23] = {tile = 'concrete'},
|
||||
[24] = {tile = 'concrete'},
|
||||
[25] = {tile = 'concrete'},
|
||||
[26] = {entity = {name = 'flamethrower-turret', offset = 1}, tile = 'concrete'},
|
||||
[26] = {entity = {name = 'flamethrower-turret', callback = 'turret', offset = 1}, tile = 'concrete'},
|
||||
[27] = {tile = 'concrete'},
|
||||
[28] = {tile = 'concrete'},
|
||||
[29] = {tile = 'concrete'},
|
||||
|
||||
132
map_gen/presets/crash_site/outpost_data/medium_furance.lua
Normal file
132
map_gen/presets/crash_site/outpost_data/medium_furance.lua
Normal 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 = 'concrete'},
|
||||
[2] = {tile = 'concrete'},
|
||||
[3] = {tile = 'concrete'},
|
||||
[4] = {tile = 'concrete'},
|
||||
[5] = {tile = 'concrete'},
|
||||
[6] = {tile = 'concrete'},
|
||||
[7] = {tile = '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 = 'concrete'},
|
||||
[13] = {tile = '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 = 'concrete'},
|
||||
[19] = {tile = '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 = 'concrete'},
|
||||
[25] = {tile = '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 = '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 = 'electric-furnace', 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
|
||||
}
|
||||
@@ -18,167 +18,57 @@ local loot_callback =
|
||||
end
|
||||
)
|
||||
|
||||
local level2 =
|
||||
ob.make_1_way {
|
||||
force = 'neutral',
|
||||
loot = {callback = loot_callback},
|
||||
[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',
|
||||
factory = {
|
||||
local factory = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'iron-gear-wheel',
|
||||
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'iron-gear-wheel'}
|
||||
}
|
||||
},
|
||||
max_count = 6,
|
||||
fallback = level2,
|
||||
[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 = 'assembling-machine-2', 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',
|
||||
market = {
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
offer = {type = 'give-item', item = 'iron-gear-wheel', count = 100},
|
||||
name = 'coin',
|
||||
price = 100,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 10
|
||||
name = 'iron-gear-wheel',
|
||||
price = 0.5,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.05
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'iron-plate', count = 100},
|
||||
name = 'coin',
|
||||
price = 80,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 8
|
||||
name = 'iron-plate',
|
||||
price = 0.4,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.04
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'steel-plate', count = 100},
|
||||
name = 'coin',
|
||||
price = 400,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 40
|
||||
name = 'steel-plate',
|
||||
price = 2,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.2
|
||||
}
|
||||
}
|
||||
},
|
||||
max_count = 1,
|
||||
fallback = level3,
|
||||
[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'}
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
)
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 7,
|
||||
|
||||
@@ -18,182 +18,78 @@ local loot_callback =
|
||||
end
|
||||
)
|
||||
|
||||
local level2 =
|
||||
ob.make_1_way {
|
||||
force = 'neutral',
|
||||
loot = {callback = loot_callback},
|
||||
[1] = {tile = 'concrete'},
|
||||
[2] = {tile = 'concrete'},
|
||||
[3] = {tile = 'concrete'},
|
||||
[4] = {tile = 'concrete'},
|
||||
[5] = {tile = 'concrete'},
|
||||
[6] = {tile = 'concrete'},
|
||||
[7] = {tile = '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 = 'concrete'},
|
||||
[13] = {tile = '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 = 'concrete'},
|
||||
[19] = {tile = '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 = 'concrete'},
|
||||
[25] = {tile = '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 = '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',
|
||||
factory = {
|
||||
local factory = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
furance_item = 'iron-ore',
|
||||
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'iron-plate'}
|
||||
}
|
||||
},
|
||||
max_count = 6,
|
||||
fallback = level2,
|
||||
[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 = 'electric-furnace', 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 level3b =
|
||||
ob.extend_1_way(
|
||||
level3,
|
||||
{
|
||||
factory = {
|
||||
local factory_b = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
furance_item = {name = 'iron-plate', count = 100},
|
||||
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'steel-plate'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'iron-plate',
|
||||
price = 0.3,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.03
|
||||
},
|
||||
{
|
||||
name = 'steel-plate',
|
||||
price = 1.5,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.15
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.medium_furance'
|
||||
|
||||
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
|
||||
}
|
||||
)
|
||||
|
||||
local level3b =
|
||||
ob.extend_1_way(
|
||||
base_factory[2],
|
||||
{
|
||||
factory = factory_b,
|
||||
fallback = level2
|
||||
}
|
||||
)
|
||||
|
||||
local level4 =
|
||||
ob.make_1_way {
|
||||
force = 'neutral',
|
||||
market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
offer = {type = 'give-item', item = 'iron-plate', count = 100},
|
||||
name = 'coin',
|
||||
price = 60,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 6
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'steel-plate', count = 100},
|
||||
name = 'coin',
|
||||
price = 300,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 30
|
||||
}
|
||||
}
|
||||
},
|
||||
max_count = 1,
|
||||
fallback = level3,
|
||||
[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'}
|
||||
}
|
||||
|
||||
local level4b =
|
||||
ob.extend_1_way(
|
||||
level4,
|
||||
base_factory[3],
|
||||
{
|
||||
fallback = level3b
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
|
||||
local level4b =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3b
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 7,
|
||||
|
||||
@@ -2,6 +2,7 @@ local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
|
||||
return {
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {entity = {name = 'stone-wall'}},
|
||||
@@ -21,9 +22,9 @@ return {
|
||||
[17] = {tile = 'hazard-concrete-left'},
|
||||
[18] = {tile = 'concrete'},
|
||||
[19] = {tile = 'hazard-concrete-left'},
|
||||
[20] = {entity = {name = 'laser-turret', offset = 3}, tile = 'concrete'},
|
||||
[20] = {entity = {name = 'laser-turret', callback = 'turret', offset = 3}, tile = 'concrete'},
|
||||
[21] = {tile = 'hazard-concrete-left'},
|
||||
[22] = {entity = {name = 'laser-turret', offset = 3}, tile = 'concrete'},
|
||||
[22] = {entity = {name = 'laser-turret', callback = 'turret', offset = 3}, tile = 'concrete'},
|
||||
[23] = {tile = 'hazard-concrete-left'},
|
||||
[24] = {tile = 'concrete'},
|
||||
[25] = {tile = 'hazard-concrete-left'},
|
||||
@@ -40,6 +41,7 @@ return {
|
||||
[36] = {tile = 'concrete'}
|
||||
},
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {entity = {name = 'stone-wall'}},
|
||||
@@ -54,9 +56,9 @@ return {
|
||||
[12] = {entity = {name = 'stone-wall'}},
|
||||
[13] = {entity = {name = 'stone-wall'}},
|
||||
[14] = {entity = {name = 'stone-wall'}},
|
||||
[15] = {entity = {name = 'laser-turret', offset = 3}, tile = 'concrete'},
|
||||
[15] = {entity = {name = 'laser-turret', callback = 'turret', offset = 3}, tile = 'concrete'},
|
||||
[16] = {tile = 'hazard-concrete-left'},
|
||||
[17] = {entity = {name = 'laser-turret', offset = 3}, tile = 'concrete'},
|
||||
[17] = {entity = {name = 'laser-turret', callback = 'turret', offset = 3}, tile = 'concrete'},
|
||||
[18] = {tile = 'hazard-concrete-left'},
|
||||
[19] = {entity = {name = 'stone-wall'}},
|
||||
[20] = {entity = {name = 'stone-wall'}},
|
||||
@@ -66,7 +68,7 @@ return {
|
||||
[24] = {tile = 'concrete'},
|
||||
[25] = {entity = {name = 'stone-wall'}},
|
||||
[26] = {entity = {name = 'stone-wall'}},
|
||||
[27] = {entity = {name = 'laser-turret', offset = 3}, tile = 'concrete'},
|
||||
[27] = {entity = {name = 'laser-turret', callback = 'turret', offset = 3}, tile = 'concrete'},
|
||||
[28] = {tile = 'hazard-concrete-left'},
|
||||
[29] = {entity = {name = 'medium-electric-pole'}, tile = 'concrete'},
|
||||
[30] = {tile = 'hazard-concrete-left'},
|
||||
@@ -78,6 +80,7 @@ return {
|
||||
[36] = {entity = {name = 'medium-electric-pole'}, tile = 'concrete'}
|
||||
},
|
||||
ob.make_4_way {
|
||||
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||
[1] = {entity = {name = 'stone-wall'}},
|
||||
[2] = {entity = {name = 'stone-wall'}},
|
||||
[3] = {tile = 'concrete'},
|
||||
@@ -87,7 +90,7 @@ return {
|
||||
[7] = {entity = {name = 'stone-wall'}},
|
||||
[8] = {entity = {name = 'stone-wall'}},
|
||||
[9] = {tile = 'hazard-concrete-left'},
|
||||
[10] = {entity = {name = 'laser-turret', offset = 3}, tile = 'concrete'},
|
||||
[10] = {entity = {name = 'laser-turret', callback = 'turret', offset = 3}, tile = 'concrete'},
|
||||
[11] = {tile = 'hazard-concrete-left'},
|
||||
[12] = {tile = 'concrete'},
|
||||
[13] = {tile = 'concrete'},
|
||||
@@ -97,7 +100,7 @@ return {
|
||||
[17] = {tile = 'concrete'},
|
||||
[18] = {tile = 'hazard-concrete-left'},
|
||||
[19] = {tile = 'hazard-concrete-left'},
|
||||
[20] = {entity = {name = 'laser-turret', offset = 3}, tile = 'concrete'},
|
||||
[20] = {entity = {name = 'laser-turret', callback = 'turret', offset = 3}, tile = 'concrete'},
|
||||
[21] = {tile = 'hazard-concrete-left'},
|
||||
[22] = {tile = 'concrete'},
|
||||
[23] = {tile = 'hazard-concrete-left'},
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
{stack = {name = 'coin', count = 750, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'science-pack-1', count = 100, distance_factor = 1 / 10}, weight = 5},
|
||||
{stack = {name = 'science-pack-2', count = 50, distance_factor = 1 / 10}, weight = 5},
|
||||
{stack = {name = 'military-science-pack', count = 25, distance_factor = 1 / 10}, weight = 5},
|
||||
{stack = {name = 'science-pack-3', count = 25, distance_factor = 1 / 10}, 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 = 'military-science-pack',
|
||||
output = {min_rate = 0.1 / 60, distance_factor = 1 / 60 / 1000, item = 'military-science-pack'}
|
||||
}
|
||||
}
|
||||
|
||||
local factory_b = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'science-pack-3',
|
||||
output = {min_rate = 0.1 / 60, distance_factor = 1 / 60 / 1000, item = 'science-pack-3'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'science-pack-1',
|
||||
price = 10,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 1
|
||||
},
|
||||
{
|
||||
name = 'science-pack-2',
|
||||
price = 20,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 2
|
||||
},
|
||||
{
|
||||
name = 'military-science-pack',
|
||||
price = 40,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 4
|
||||
},
|
||||
{
|
||||
name = 'science-pack-3',
|
||||
price = 60,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 4
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
)
|
||||
local level3b =
|
||||
ob.extend_1_way(
|
||||
base_factory[2],
|
||||
{
|
||||
factory = factory_b,
|
||||
fallback = level2
|
||||
}
|
||||
)
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
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, level3b, level2}
|
||||
}
|
||||
}
|
||||
163
map_gen/presets/crash_site/outpost_data/small_ammo_factory.lua
Normal file
163
map_gen/presets/crash_site/outpost_data/small_ammo_factory.lua
Normal file
@@ -0,0 +1,163 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
{stack = {name = 'coin', count = 500, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'firearm-magazine', count = 500, distance_factor = 1}, weight = 5},
|
||||
{stack = {name = 'piercing-rounds-magazine', count = 300, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'shotgun-shell', count = 200, distance_factor = 1 / 4}, weight = 2},
|
||||
{stack = {name = 'grenade', count = 100, distance_factor = 1 / 8}, weight = 3},
|
||||
{stack = {name = 'land-mine', count = 400, distance_factor = 1}, weight = 2},
|
||||
{stack = {name = 'rocket', count = 50, distance_factor = 1 / 32}, weight = 1},
|
||||
{stack = {name = 'cannon-shell', count = 50, distance_factor = 1 / 32}, weight = 1},
|
||||
{stack = {name = 'cluster-grenade', count = 10, distance_factor = 1 / 32}, weight = 1},
|
||||
{stack = {name = 'poison-capsule', count = 10, distance_factor = 1 / 32}, weight = 1}
|
||||
}
|
||||
|
||||
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 = 'firearm-magazine',
|
||||
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'firearm-magazine'}
|
||||
}
|
||||
}
|
||||
|
||||
local factory_b = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'piercing-rounds-magazine',
|
||||
output = {min_rate = 1 / 3 / 60, distance_factor = 1 / 60 / 100, item = 'piercing-rounds-magazine'}
|
||||
}
|
||||
}
|
||||
|
||||
local factory_c = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'grenade',
|
||||
output = {min_rate = 1 / 3 / 60, distance_factor = 1 / 60 / 100, item = 'grenade'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'firearm-magazine',
|
||||
price = 1,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.1
|
||||
},
|
||||
{
|
||||
name = 'piercing-rounds-magazine',
|
||||
price = 3,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.3
|
||||
},
|
||||
{
|
||||
name = 'shotgun-shell',
|
||||
price = 2,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.2
|
||||
},
|
||||
{
|
||||
name = 'grenade',
|
||||
price = 10,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 1
|
||||
},
|
||||
{
|
||||
name = 'land-mine',
|
||||
price = 1,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.1
|
||||
},
|
||||
{
|
||||
name = 'rocket',
|
||||
price = 20,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 2
|
||||
},
|
||||
{
|
||||
name = 'rocket-launcher',
|
||||
price = 250,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 125
|
||||
},
|
||||
{
|
||||
name = 'cluster-grenade',
|
||||
price = 60,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 6
|
||||
},
|
||||
{
|
||||
name = 'poison-capsule',
|
||||
price = 60,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 6
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.small_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
|
||||
}
|
||||
)
|
||||
local level3b =
|
||||
ob.extend_1_way(
|
||||
base_factory[2],
|
||||
{
|
||||
factory = factory_b,
|
||||
fallback = level3,
|
||||
max_count = 2
|
||||
}
|
||||
)
|
||||
local level3c =
|
||||
ob.extend_1_way(
|
||||
base_factory[2],
|
||||
{
|
||||
factory = factory_c,
|
||||
fallback = level3b,
|
||||
max_count = 1
|
||||
}
|
||||
)
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3c
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 7,
|
||||
variance = 3,
|
||||
min_step = 2,
|
||||
max_level = 2
|
||||
},
|
||||
walls = {
|
||||
require 'map_gen.presets.crash_site.outpost_data.medium_gun_turrets',
|
||||
require 'map_gen.presets.crash_site.outpost_data.medium_laser_turrets',
|
||||
require 'map_gen.presets.crash_site.outpost_data.medium_flame_turrets'
|
||||
},
|
||||
bases = {
|
||||
{level4, level2}
|
||||
}
|
||||
}
|
||||
@@ -24,21 +24,21 @@ local market = {
|
||||
data = {
|
||||
{
|
||||
name = 'copper-cable',
|
||||
price = 50 / 200,
|
||||
distance_factor = 1 / 200 / 32,
|
||||
min_price = 5 / 200
|
||||
price = 0.25,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.025
|
||||
},
|
||||
{
|
||||
name = 'electronic-circuit',
|
||||
price = 200 / 200,
|
||||
distance_factor = 1 / 200 / 32,
|
||||
min_price = 10 / 200
|
||||
price = 1,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.05
|
||||
},
|
||||
{
|
||||
name = 'advanced-circuit',
|
||||
price = 2000 / 200,
|
||||
distance_factor = 1 / 200 / 32,
|
||||
min_price = 100 / 200
|
||||
price = 10,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.5
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
{stack = {name = 'coin', count = 500, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'copper-ore', count = 1600}, weight = 8},
|
||||
{stack = {name = 'copper-cable', count = 500, distance_factor = 1 / 2}, weight = 2},
|
||||
{stack = {name = 'copper-plate', count = 500, distance_factor = 1 / 2}, weight = 10}
|
||||
}
|
||||
|
||||
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 = {
|
||||
furance_item = 'copper-ore',
|
||||
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'copper-plate'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'copper-cable',
|
||||
price = 0.12,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.012
|
||||
},
|
||||
{
|
||||
name = 'copper-plate',
|
||||
price = 0.3,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.03
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.small_furance'
|
||||
|
||||
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
|
||||
}
|
||||
)
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 6,
|
||||
variance = 3,
|
||||
min_step = 2,
|
||||
max_level = 2
|
||||
},
|
||||
walls = {
|
||||
require 'map_gen.presets.crash_site.outpost_data.light_gun_turrets'
|
||||
},
|
||||
bases = {
|
||||
{level4, level2}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
|
||||
local loot = {
|
||||
{weight = 5},
|
||||
{stack = {name = 'coin', count = 500, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'engine-unit', count = 100, distance_factor = 1 / 2}, weight = 10},
|
||||
{stack = {name = 'electric-engine-unit', count = 50, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'car', count = 1, distance_factor = 1 / 128}, weight = 2},
|
||||
{stack = {name = 'rail', count = 100, distance_factor = 1}, weight = 2}
|
||||
}
|
||||
|
||||
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 = 'engine-unit',
|
||||
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'engine-unit'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'engine-unit',
|
||||
price = 4,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.4
|
||||
},
|
||||
{
|
||||
name = 'electric-engine-unit',
|
||||
price = 8,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.8
|
||||
},
|
||||
{
|
||||
name = 'car',
|
||||
price = 50,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 40
|
||||
},
|
||||
{
|
||||
name = 'rail',
|
||||
price = 1,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.small_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 level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 6,
|
||||
variance = 3,
|
||||
min_step = 2,
|
||||
max_level = 2
|
||||
},
|
||||
walls = {
|
||||
require 'map_gen.presets.crash_site.outpost_data.light_gun_turrets'
|
||||
},
|
||||
bases = {
|
||||
{level4, level2}
|
||||
}
|
||||
}
|
||||
132
map_gen/presets/crash_site/outpost_data/small_furance.lua
Normal file
132
map_gen/presets/crash_site/outpost_data/small_furance.lua
Normal 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 = 'electric-furnace', 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
|
||||
}
|
||||
@@ -18,167 +18,57 @@ local loot_callback =
|
||||
end
|
||||
)
|
||||
|
||||
local level2 =
|
||||
ob.make_1_way {
|
||||
force = 'neutral',
|
||||
loot = {callback = loot_callback},
|
||||
[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',
|
||||
factory = {
|
||||
local factory = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'iron-gear-wheel',
|
||||
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'iron-gear-wheel'}
|
||||
}
|
||||
},
|
||||
max_count = 4,
|
||||
fallback = level2,
|
||||
[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 = 'assembling-machine-2', 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',
|
||||
market = {
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
offer = {type = 'give-item', item = 'iron-gear-wheel', count = 100},
|
||||
name = 'coin',
|
||||
price = 100,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 10
|
||||
name = 'iron-gear-wheel',
|
||||
price = 0.5,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.05
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'iron-plate', count = 100},
|
||||
name = 'coin',
|
||||
price = 80,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 8
|
||||
name = 'iron-plate',
|
||||
price = 0.4,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.04
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'steel-plate', count = 100},
|
||||
name = 'coin',
|
||||
price = 400,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 40
|
||||
name = 'steel-plate',
|
||||
price = 2,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.2
|
||||
}
|
||||
}
|
||||
},
|
||||
max_count = 1,
|
||||
fallback = level3,
|
||||
[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'}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.small_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
|
||||
}
|
||||
)
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 6,
|
||||
|
||||
@@ -18,160 +18,51 @@ local loot_callback =
|
||||
end
|
||||
)
|
||||
|
||||
local level2 =
|
||||
ob.make_1_way {
|
||||
force = 'neutral',
|
||||
loot = {callback = loot_callback},
|
||||
[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',
|
||||
factory = {
|
||||
local factory = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
furance_item = 'iron-ore',
|
||||
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'iron-plate'}
|
||||
}
|
||||
},
|
||||
max_count = 4,
|
||||
fallback = level2,
|
||||
[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 = 'electric-furnace', 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',
|
||||
market = {
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
offer = {type = 'give-item', item = 'iron-plate', count = 100},
|
||||
name = 'coin',
|
||||
price = 60,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 6
|
||||
name = 'iron-plate',
|
||||
price = 0.3,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.03
|
||||
},
|
||||
{
|
||||
offer = {type = 'give-item', item = 'steel-plate', count = 100},
|
||||
name = 'coin',
|
||||
price = 300,
|
||||
distance_factor = 1 / 32,
|
||||
min_price = 30
|
||||
name = 'steel-plate',
|
||||
price = 1.5,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 0.15
|
||||
}
|
||||
}
|
||||
},
|
||||
max_count = 1,
|
||||
fallback = level3,
|
||||
[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'}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.small_furance'
|
||||
|
||||
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
|
||||
}
|
||||
)
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 6,
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.global_token'
|
||||
|
||||
local loot = {
|
||||
{weight = 10},
|
||||
{stack = {name = 'coin', count = 500, distance_factor = 1 / 2}, weight = 5},
|
||||
{stack = {name = 'science-pack-1', count = 50, distance_factor = 1 / 10}, weight = 5},
|
||||
{stack = {name = 'science-pack-2', count = 25, distance_factor = 1 / 10}, 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 = 'science-pack-1',
|
||||
output = {min_rate = 0.1 / 60, distance_factor = 1 / 60 / 1000, item = 'science-pack-1'}
|
||||
}
|
||||
}
|
||||
|
||||
local factory_b = {
|
||||
callback = ob.magic_item_crafting_callback,
|
||||
data = {
|
||||
recipe = 'science-pack-2',
|
||||
output = {min_rate = 0.1 / 60, distance_factor = 1 / 60 / 1000, item = 'science-pack-2'}
|
||||
}
|
||||
}
|
||||
|
||||
local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
{
|
||||
name = 'science-pack-1',
|
||||
price = 10,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 1
|
||||
},
|
||||
{
|
||||
name = 'science-pack-2',
|
||||
price = 20,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 2
|
||||
},
|
||||
{
|
||||
name = 'military-science-pack',
|
||||
price = 40,
|
||||
distance_factor = 0.005 / 32,
|
||||
min_price = 4
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local base_factory = require 'map_gen.presets.crash_site.outpost_data.small_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
|
||||
}
|
||||
)
|
||||
local level3b =
|
||||
ob.extend_1_way(
|
||||
base_factory[2],
|
||||
{
|
||||
factory = factory_b,
|
||||
fallback = level2
|
||||
}
|
||||
)
|
||||
local level4 =
|
||||
ob.extend_1_way(
|
||||
base_factory[3],
|
||||
{
|
||||
market = market,
|
||||
fallback = level3
|
||||
}
|
||||
)
|
||||
return {
|
||||
settings = {
|
||||
blocks = 6,
|
||||
variance = 3,
|
||||
min_step = 2,
|
||||
max_level = 2
|
||||
},
|
||||
walls = {
|
||||
require 'map_gen.presets.crash_site.outpost_data.light_laser_turrets'
|
||||
},
|
||||
bases = {
|
||||
{level4, level3b, level2}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user