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 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 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 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 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 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 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 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 = {
|
local stage1 = {
|
||||||
{}
|
{}
|
||||||
}
|
}
|
||||||
@@ -66,7 +82,7 @@ for r = 1, 100 do
|
|||||||
local row = {}
|
local row = {}
|
||||||
pattern[r] = row
|
pattern[r] = row
|
||||||
for c = 1, 100 do
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -102,7 +118,6 @@ local market = {
|
|||||||
--[[ for i = 4, 1000 do
|
--[[ for i = 4, 1000 do
|
||||||
market.data[i] = market.data[1]
|
market.data[i] = market.data[1]
|
||||||
end ]]
|
end ]]
|
||||||
|
|
||||||
local outpost =
|
local outpost =
|
||||||
outpost_builder.to_shape(
|
outpost_builder.to_shape(
|
||||||
{
|
{
|
||||||
@@ -117,5 +132,5 @@ local outpost =
|
|||||||
local map = b.change_tile(outposts, true, 'grass-1')
|
local map = b.change_tile(outposts, true, 'grass-1')
|
||||||
|
|
||||||
--return b.full_shape
|
--return b.full_shape
|
||||||
--return map
|
return map
|
||||||
return outpost
|
--return outpost
|
||||||
|
|||||||
@@ -786,13 +786,10 @@ function Public.make_4_way(data)
|
|||||||
i4 = i4 + 1
|
i4 = i4 + 1
|
||||||
elseif offset == 1 then
|
elseif offset == 1 then
|
||||||
i = i + 1
|
i = i + 1
|
||||||
i4 = i4 + 1
|
i2 = i2 + 6
|
||||||
elseif offset == 2 then
|
elseif offset == 2 then
|
||||||
i = i + 6
|
i = i + 6
|
||||||
i2 = i2 + 6
|
i4 = i4 + 1
|
||||||
else
|
|
||||||
i = i
|
|
||||||
i2 = i2
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local dir = entity.direction or 0
|
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.firearm_magazine_ammo = {name = 'firearm-magazine', count = 200}
|
||||||
Public.piercing_rounds_magazine_ammo = {name = 'piercing-rounds-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.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.light_oil_ammo = {name = 'light-oil', amount = 100}
|
||||||
|
|
||||||
Public.laser_turrent_power_source = {buffer_size = 2400000, power_production = 40000}
|
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,
|
callback = ob.market_set_items_callback,
|
||||||
data = {
|
data = {
|
||||||
{
|
{
|
||||||
offer = {type = 'give-item', item = 'copper-cable', count = 200},
|
name = 'copper-cable',
|
||||||
name = 'coin',
|
price = 0.25,
|
||||||
price = 50,
|
distance_factor = 0.005 / 32,
|
||||||
distance_factor = 1 / 32,
|
min_price = 0.025
|
||||||
min_price = 5
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
offer = {type = 'give-item', item = 'electronic-circuit', count = 200},
|
name = 'electronic-circuit',
|
||||||
name = 'coin',
|
price = 1,
|
||||||
price = 200,
|
distance_factor = 0.005 / 32,
|
||||||
distance_factor = 1 / 32,
|
min_price = 0.05
|
||||||
min_price = 10
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
offer = {type = 'give-item', item = 'advanced-circuit', count = 200},
|
name = 'advanced-circuit',
|
||||||
name = 'coin',
|
price = 4,
|
||||||
price = 800,
|
distance_factor = 0.005 / 32,
|
||||||
distance_factor = 1 / 32,
|
min_price = 0.2
|
||||||
min_price = 40
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
offer = {type = 'give-item', item = 'processing-unit', count = 200},
|
name = 'processing-unit',
|
||||||
name = 'coin',
|
price = 16,
|
||||||
price = 2000,
|
distance_factor = 0.005 / 32,
|
||||||
distance_factor = 1 / 32,
|
min_price = 0.8
|
||||||
min_price = 80
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
local level2 =
|
local factory = {
|
||||||
ob.make_1_way {
|
callback = ob.magic_item_crafting_callback,
|
||||||
force = 'neutral',
|
data = {
|
||||||
loot = {callback = loot_callback},
|
recipe = 'iron-gear-wheel',
|
||||||
[1] = {tile = 'refined-concrete'},
|
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'iron-gear-wheel'}
|
||||||
[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 market = {
|
||||||
|
callback = ob.market_set_items_callback,
|
||||||
|
data = {
|
||||||
|
{
|
||||||
|
name = 'iron-gear-wheel',
|
||||||
|
price = 0.5,
|
||||||
|
distance_factor = 0.005 / 32,
|
||||||
|
min_price = 0.025
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = 'iron-plate',
|
||||||
|
price = 0.4,
|
||||||
|
distance_factor = 0.005 / 32,
|
||||||
|
min_price = 0.02
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = 'steel-plate',
|
||||||
|
price = 2,
|
||||||
|
distance_factor = 0.005 / 32,
|
||||||
|
min_price = 0.125
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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 =
|
local level3 =
|
||||||
ob.make_1_way {
|
ob.extend_1_way(
|
||||||
force = 'neutral',
|
base_factory[2],
|
||||||
factory = {
|
{
|
||||||
callback = ob.magic_item_crafting_callback,
|
factory = factory,
|
||||||
data = {
|
fallback = level2
|
||||||
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 =
|
local level4 =
|
||||||
ob.make_1_way {
|
ob.extend_1_way(
|
||||||
force = 'neutral',
|
base_factory[3],
|
||||||
market = {
|
{
|
||||||
callback = ob.market_set_items_callback,
|
market = market,
|
||||||
data = {
|
fallback = level3
|
||||||
{
|
}
|
||||||
offer = {type = 'give-item', item = 'iron-gear-wheel', count = 100},
|
)
|
||||||
name = 'coin',
|
|
||||||
price = 100,
|
|
||||||
distance_factor = 1 / 32,
|
|
||||||
min_price = 5
|
|
||||||
},
|
|
||||||
{
|
|
||||||
offer = {type = 'give-item', item = 'iron-plate', count = 100},
|
|
||||||
name = 'coin',
|
|
||||||
price = 80,
|
|
||||||
distance_factor = 1 / 32,
|
|
||||||
min_price = 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
offer = {type = 'give-item', item = 'steel-plate', count = 100},
|
|
||||||
name = 'coin',
|
|
||||||
price = 400,
|
|
||||||
distance_factor = 1 / 32,
|
|
||||||
min_price = 25
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
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'}
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
settings = {
|
settings = {
|
||||||
blocks = 9,
|
blocks = 9,
|
||||||
|
|||||||
@@ -18,193 +18,81 @@ local loot_callback =
|
|||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
local level2 =
|
local factory = {
|
||||||
ob.make_1_way {
|
callback = ob.magic_item_crafting_callback,
|
||||||
force = 'neutral',
|
data = {
|
||||||
loot = {callback = loot_callback},
|
furance_item = {name = 'iron-ore', count = 100},
|
||||||
[1] = {tile = 'refined-concrete'},
|
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'iron-plate'}
|
||||||
[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 =
|
local factory_b = {
|
||||||
ob.make_1_way {
|
callback = ob.magic_item_crafting_callback,
|
||||||
force = 'neutral',
|
data = {
|
||||||
factory = {
|
furance_item = {name = 'iron-plate', count = 100},
|
||||||
callback = ob.magic_item_crafting_callback,
|
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'steel-plate'}
|
||||||
data = {
|
}
|
||||||
furance_item = 'iron-ore',
|
|
||||||
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 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 =
|
local level3b =
|
||||||
ob.extend_1_way(
|
ob.extend_1_way(
|
||||||
level3,
|
base_factory[2],
|
||||||
{
|
{
|
||||||
factory = {
|
factory = factory_b,
|
||||||
callback = ob.magic_item_crafting_callback,
|
fallback = level2
|
||||||
data = {
|
|
||||||
furance_item = {name = 'iron-plate', count = 100},
|
|
||||||
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'steel-plate'}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
local level4 =
|
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(
|
ob.extend_1_way(
|
||||||
level4,
|
base_factory[3],
|
||||||
{
|
{
|
||||||
|
market = market,
|
||||||
fallback = level3b
|
fallback = level3b
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
settings = {
|
settings = {
|
||||||
blocks = 9,
|
blocks = 9,
|
||||||
variance = 3,
|
variance = 3,
|
||||||
min_step = 2,
|
min_step = 2,
|
||||||
max_level = 2
|
max_level = 3
|
||||||
},
|
},
|
||||||
walls = {
|
walls = {
|
||||||
require 'map_gen.presets.crash_site.outpost_data.heavy_gun_turrets'
|
require 'map_gen.presets.crash_site.outpost_data.heavy_gun_turrets'
|
||||||
},
|
},
|
||||||
bases = {
|
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 {
|
return {
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {entity = {name = 'stone-wall'}},
|
[3] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -26,11 +27,20 @@ return {
|
|||||||
[22] = {tile = 'refined-hazard-concrete-left'},
|
[22] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[23] = {tile = 'refined-hazard-concrete-left'},
|
[23] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[24] = {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'},
|
[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'},
|
[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'},
|
[30] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[31] = {tile = 'refined-hazard-concrete-left'},
|
[31] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[32] = {tile = 'refined-hazard-concrete-left'},
|
[32] = {tile = 'refined-hazard-concrete-left'},
|
||||||
@@ -40,6 +50,7 @@ return {
|
|||||||
[36] = {tile = 'refined-hazard-concrete-left'}
|
[36] = {tile = 'refined-hazard-concrete-left'}
|
||||||
},
|
},
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {entity = {name = 'stone-wall'}},
|
[3] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -54,9 +65,15 @@ return {
|
|||||||
[12] = {tile = 'refined-hazard-concrete-left'},
|
[12] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[13] = {entity = {name = 'stone-wall'}},
|
[13] = {entity = {name = 'stone-wall'}},
|
||||||
[14] = {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'},
|
[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'},
|
[18] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[19] = {entity = {name = 'stone-wall'}},
|
[19] = {entity = {name = 'stone-wall'}},
|
||||||
[20] = {entity = {name = 'stone-wall'}},
|
[20] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -67,7 +84,7 @@ return {
|
|||||||
[25] = {entity = {name = 'stone-wall'}},
|
[25] = {entity = {name = 'stone-wall'}},
|
||||||
[26] = {tile = 'refined-hazard-concrete-left'},
|
[26] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[27] = {
|
[27] = {
|
||||||
entity = {name = 'flamethrower-turret', direction = 6, offset = 2},
|
entity = {name = 'flamethrower-turret', callback = 'turret', direction = 6, offset = 2},
|
||||||
tile = 'refined-hazard-concrete-left'
|
tile = 'refined-hazard-concrete-left'
|
||||||
},
|
},
|
||||||
[28] = {tile = 'refined-hazard-concrete-left'},
|
[28] = {tile = 'refined-hazard-concrete-left'},
|
||||||
@@ -81,6 +98,7 @@ return {
|
|||||||
[36] = {tile = 'refined-hazard-concrete-left'}
|
[36] = {tile = 'refined-hazard-concrete-left'}
|
||||||
},
|
},
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {tile = 'refined-hazard-concrete-left'},
|
[3] = {tile = 'refined-hazard-concrete-left'},
|
||||||
@@ -92,7 +110,7 @@ return {
|
|||||||
[9] = {tile = 'refined-hazard-concrete-left'},
|
[9] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[10] = {tile = 'refined-hazard-concrete-left'},
|
[10] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[11] = {
|
[11] = {
|
||||||
entity = {name = 'flamethrower-turret', direction = 6, offset = 2},
|
entity = {name = 'flamethrower-turret', callback = 'turret', direction = 6, offset = 2},
|
||||||
tile = 'refined-hazard-concrete-left'
|
tile = 'refined-hazard-concrete-left'
|
||||||
},
|
},
|
||||||
[12] = {tile = 'refined-hazard-concrete-left'},
|
[12] = {tile = 'refined-hazard-concrete-left'},
|
||||||
@@ -108,11 +126,20 @@ return {
|
|||||||
[22] = {tile = 'refined-hazard-concrete-left'},
|
[22] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[23] = {tile = 'refined-hazard-concrete-left'},
|
[23] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[24] = {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'},
|
[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'},
|
[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'},
|
[30] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[31] = {tile = 'refined-hazard-concrete-left'},
|
[31] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[32] = {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 {
|
return {
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {tile = 'concrete'},
|
[3] = {entity = {name = 'stone-wall'}},
|
||||||
[4] = {tile = 'hazard-concrete-left'},
|
[4] = {entity = {name = 'stone-wall'}},
|
||||||
[5] = {tile = 'concrete'},
|
[5] = {entity = {name = 'stone-wall'}},
|
||||||
[6] = {tile = 'hazard-concrete-left'},
|
[6] = {entity = {name = 'stone-wall'}},
|
||||||
[7] = {entity = {name = 'stone-wall'}},
|
[7] = {entity = {name = 'stone-wall'}},
|
||||||
[8] = {entity = {name = 'stone-wall'}},
|
[8] = {entity = {name = 'stone-wall'}},
|
||||||
[9] = {tile = 'hazard-concrete-left'},
|
[9] = {entity = {name = 'stone-wall'}},
|
||||||
[10] = {entity = {name = 'laser-turret', offset = 3}, tile = 'concrete'},
|
[10] = {entity = {name = 'stone-wall'}},
|
||||||
[11] = {tile = 'hazard-concrete-left'},
|
[11] = {entity = {name = 'stone-wall'}},
|
||||||
[12] = {tile = 'concrete'},
|
[12] = {entity = {name = 'stone-wall'}},
|
||||||
[13] = {tile = 'concrete'},
|
[13] = {
|
||||||
[14] = {tile = 'hazard-concrete-left'},
|
entity = {name = 'laser-turret', callback = 'turret', offset = 3},
|
||||||
[15] = {tile = 'concrete'},
|
tile = 'refined-hazard-concrete-left'
|
||||||
[16] = {tile = 'hazard-concrete-left'},
|
},
|
||||||
[17] = {tile = 'concrete'},
|
[14] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[18] = {tile = 'hazard-concrete-left'},
|
[15] = {
|
||||||
[19] = {tile = 'hazard-concrete-left'},
|
entity = {name = 'laser-turret', callback = 'turret', offset = 3},
|
||||||
[20] = {entity = {name = 'laser-turret', offset = 3}, tile = 'concrete'},
|
tile = 'refined-hazard-concrete-left'
|
||||||
[21] = {tile = 'hazard-concrete-left'},
|
},
|
||||||
[22] = {tile = 'concrete'},
|
[16] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[23] = {tile = 'hazard-concrete-left'},
|
[17] = {
|
||||||
[24] = {tile = 'concrete'},
|
entity = {name = 'laser-turret', callback = 'turret', offset = 3},
|
||||||
[25] = {tile = 'concrete'},
|
tile = 'refined-hazard-concrete-left'
|
||||||
[26] = {tile = 'hazard-concrete-left'},
|
},
|
||||||
[27] = {tile = 'concrete'},
|
[18] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[28] = {tile = 'hazard-concrete-left'},
|
[19] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[29] = {tile = 'concrete'},
|
[20] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[30] = {entity = {name = 'medium-electric-pole'}, tile = 'hazard-concrete-left'},
|
[21] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[31] = {tile = 'hazard-concrete-left'},
|
[22] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[32] = {tile = 'concrete'},
|
[23] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[33] = {tile = 'hazard-concrete-left'},
|
[24] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[34] = {tile = 'concrete'},
|
[25] = {
|
||||||
[35] = {entity = {name = 'medium-electric-pole'}, tile = 'hazard-concrete-left'},
|
entity = {name = 'laser-turret', callback = 'turret', offset = 3},
|
||||||
[36] = {tile = 'concrete'}
|
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 {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {entity = {name = 'stone-wall'}},
|
[3] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -54,9 +71,15 @@ return {
|
|||||||
[12] = {entity = {name = 'stone-wall'}},
|
[12] = {entity = {name = 'stone-wall'}},
|
||||||
[13] = {entity = {name = 'stone-wall'}},
|
[13] = {entity = {name = 'stone-wall'}},
|
||||||
[14] = {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'},
|
[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'},
|
[18] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[19] = {entity = {name = 'stone-wall'}},
|
[19] = {entity = {name = 'stone-wall'}},
|
||||||
[20] = {entity = {name = 'stone-wall'}},
|
[20] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -66,7 +89,10 @@ return {
|
|||||||
[24] = {tile = 'refined-hazard-concrete-left'},
|
[24] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[25] = {entity = {name = 'stone-wall'}},
|
[25] = {entity = {name = 'stone-wall'}},
|
||||||
[26] = {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'},
|
[28] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[29] = {entity = {name = 'substation', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
[29] = {entity = {name = 'substation', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||||
[30] = {tile = 'refined-hazard-concrete-left'},
|
[30] = {tile = 'refined-hazard-concrete-left'},
|
||||||
@@ -78,11 +104,18 @@ return {
|
|||||||
[36] = {tile = 'refined-hazard-concrete-left'}
|
[36] = {tile = 'refined-hazard-concrete-left'}
|
||||||
},
|
},
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {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'},
|
[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'},
|
[6] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[7] = {entity = {name = 'stone-wall'}},
|
[7] = {entity = {name = 'stone-wall'}},
|
||||||
[8] = {entity = {name = 'stone-wall'}},
|
[8] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -90,11 +123,20 @@ return {
|
|||||||
[10] = {tile = 'refined-hazard-concrete-left'},
|
[10] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[11] = {tile = 'refined-hazard-concrete-left'},
|
[11] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[12] = {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'},
|
[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'},
|
[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'},
|
[18] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[19] = {tile = 'refined-hazard-concrete-left'},
|
[19] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[20] = {tile = 'refined-hazard-concrete-left'},
|
[20] = {tile = 'refined-hazard-concrete-left'},
|
||||||
@@ -102,9 +144,15 @@ return {
|
|||||||
[22] = {tile = 'refined-hazard-concrete-left'},
|
[22] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[23] = {tile = 'refined-hazard-concrete-left'},
|
[23] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[24] = {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'},
|
[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'},
|
[28] = {tile = 'refined-hazard-concrete-left'},
|
||||||
[29] = {entity = {name = 'substation', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
[29] = {entity = {name = 'substation', offset = 3}, tile = 'refined-hazard-concrete-left'},
|
||||||
[30] = {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 {
|
return {
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {entity = {name = 'stone-wall'}},
|
[3] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -28,7 +29,7 @@ return {
|
|||||||
[24] = {tile = 'concrete'},
|
[24] = {tile = 'concrete'},
|
||||||
[25] = {tile = 'concrete'},
|
[25] = {tile = 'concrete'},
|
||||||
[26] = {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'},
|
[28] = {tile = 'concrete'},
|
||||||
[29] = {tile = 'concrete'},
|
[29] = {tile = 'concrete'},
|
||||||
[30] = {tile = 'concrete'},
|
[30] = {tile = 'concrete'},
|
||||||
@@ -40,6 +41,7 @@ return {
|
|||||||
[36] = {tile = 'concrete'}
|
[36] = {tile = 'concrete'}
|
||||||
},
|
},
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {entity = {name = 'stone-wall'}},
|
[3] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -67,7 +69,7 @@ return {
|
|||||||
[25] = {entity = {name = 'stone-wall'}},
|
[25] = {entity = {name = 'stone-wall'}},
|
||||||
[26] = {entity = {name = 'stone-wall'}},
|
[26] = {entity = {name = 'stone-wall'}},
|
||||||
[27] = {tile = 'hazard-concrete-left'},
|
[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'},
|
[29] = {tile = 'concrete'},
|
||||||
[30] = {tile = 'concrete'},
|
[30] = {tile = 'concrete'},
|
||||||
[31] = {entity = {name = 'stone-wall'}},
|
[31] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -78,6 +80,7 @@ return {
|
|||||||
[36] = {tile = 'concrete'}
|
[36] = {tile = 'concrete'}
|
||||||
},
|
},
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {tile = 'hazard-concrete-left'},
|
[3] = {tile = 'hazard-concrete-left'},
|
||||||
@@ -105,7 +108,7 @@ return {
|
|||||||
[25] = {tile = 'concrete'},
|
[25] = {tile = 'concrete'},
|
||||||
[26] = {tile = 'concrete'},
|
[26] = {tile = 'concrete'},
|
||||||
[27] = {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'},
|
[29] = {tile = 'concrete'},
|
||||||
[30] = {tile = 'concrete'},
|
[30] = {tile = 'concrete'},
|
||||||
[31] = {tile = 'concrete'},
|
[31] = {tile = 'concrete'},
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {entity = {name = 'stone-wall'}},
|
[3] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -22,7 +23,7 @@ return {
|
|||||||
[18] = {tile = 'concrete'},
|
[18] = {tile = 'concrete'},
|
||||||
[19] = {tile = 'hazard-concrete-left'},
|
[19] = {tile = 'hazard-concrete-left'},
|
||||||
[20] = {tile = 'concrete'},
|
[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'},
|
[22] = {tile = 'concrete'},
|
||||||
[23] = {tile = 'hazard-concrete-left'},
|
[23] = {tile = 'hazard-concrete-left'},
|
||||||
[24] = {tile = 'concrete'},
|
[24] = {tile = 'concrete'},
|
||||||
@@ -40,6 +41,7 @@ return {
|
|||||||
[36] = {tile = 'concrete'}
|
[36] = {tile = 'concrete'}
|
||||||
},
|
},
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {entity = {name = 'stone-wall'}},
|
[3] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -61,7 +63,7 @@ return {
|
|||||||
[19] = {entity = {name = 'stone-wall'}},
|
[19] = {entity = {name = 'stone-wall'}},
|
||||||
[20] = {entity = {name = 'stone-wall'}},
|
[20] = {entity = {name = 'stone-wall'}},
|
||||||
[21] = {tile = 'hazard-concrete-left'},
|
[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'},
|
[23] = {tile = 'hazard-concrete-left'},
|
||||||
[24] = {tile = 'concrete'},
|
[24] = {tile = 'concrete'},
|
||||||
[25] = {entity = {name = 'stone-wall'}},
|
[25] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -78,6 +80,7 @@ return {
|
|||||||
[36] = {entity = {name = 'medium-electric-pole'}, tile = 'concrete'}
|
[36] = {entity = {name = 'medium-electric-pole'}, tile = 'concrete'}
|
||||||
},
|
},
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {tile = 'concrete'},
|
[3] = {tile = 'concrete'},
|
||||||
@@ -99,7 +102,7 @@ return {
|
|||||||
[19] = {tile = 'hazard-concrete-left'},
|
[19] = {tile = 'hazard-concrete-left'},
|
||||||
[20] = {tile = 'concrete'},
|
[20] = {tile = 'concrete'},
|
||||||
[21] = {tile = 'hazard-concrete-left'},
|
[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'},
|
[23] = {tile = 'hazard-concrete-left'},
|
||||||
[24] = {tile = 'concrete'},
|
[24] = {tile = 'concrete'},
|
||||||
[25] = {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,
|
callback = ob.market_set_items_callback,
|
||||||
data = {
|
data = {
|
||||||
{
|
{
|
||||||
offer = {type = 'give-item', item = 'copper-cable', count = 200},
|
name = 'copper-cable',
|
||||||
name = 'coin',
|
price = 0.25,
|
||||||
price = 50,
|
distance_factor = 0.005 / 32,
|
||||||
distance_factor = 1 / 32,
|
min_price = 0.025
|
||||||
min_price = 5
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
offer = {type = 'give-item', item = 'electronic-circuit', count = 200},
|
name= 'electronic-circuit',
|
||||||
name = 'coin',
|
price = 1,
|
||||||
price = 200,
|
distance_factor = 0.005 / 32,
|
||||||
distance_factor = 1 / 32,
|
min_price = 0.05
|
||||||
min_price = 10
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
offer = {type = 'give-item', item = 'advanced-circuit', count = 200},
|
name= 'advanced-circuit',
|
||||||
name = 'coin',
|
price = 4,
|
||||||
price = 800,
|
distance_factor = 0.005 / 32,
|
||||||
distance_factor = 1 / 32,
|
min_price = 0.2
|
||||||
min_price = 40
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
offer = {type = 'give-item', item = 'processing-unit', count = 200},
|
name = 'processing-unit',
|
||||||
name = 'coin',
|
price = 40,
|
||||||
price = 8000,
|
distance_factor = 0.005 / 32,
|
||||||
distance_factor = 1 / 32,
|
min_price = 0.8
|
||||||
min_price = 80
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
return {
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {entity = {name = 'stone-wall'}},
|
[3] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -26,11 +27,11 @@ return {
|
|||||||
[22] = {tile = 'concrete'},
|
[22] = {tile = 'concrete'},
|
||||||
[23] = {tile = 'concrete'},
|
[23] = {tile = 'concrete'},
|
||||||
[24] = {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'},
|
[26] = {tile = 'concrete'},
|
||||||
[27] = {tile = 'concrete'},
|
[27] = {tile = 'concrete'},
|
||||||
[28] = {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'},
|
[30] = {tile = 'concrete'},
|
||||||
[31] = {tile = 'concrete'},
|
[31] = {tile = 'concrete'},
|
||||||
[32] = {tile = 'concrete'},
|
[32] = {tile = 'concrete'},
|
||||||
@@ -40,6 +41,7 @@ return {
|
|||||||
[36] = {tile = 'concrete'}
|
[36] = {tile = 'concrete'}
|
||||||
},
|
},
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {entity = {name = 'stone-wall'}},
|
[3] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -56,7 +58,7 @@ return {
|
|||||||
[14] = {entity = {name = 'stone-wall'}},
|
[14] = {entity = {name = 'stone-wall'}},
|
||||||
[15] = {entity = {name = 'gun-turret', offset = 3}, tile = 'hazard-concrete-left'},
|
[15] = {entity = {name = 'gun-turret', offset = 3}, tile = 'hazard-concrete-left'},
|
||||||
[16] = {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'},
|
[18] = {tile = 'hazard-concrete-left'},
|
||||||
[19] = {entity = {name = 'stone-wall'}},
|
[19] = {entity = {name = 'stone-wall'}},
|
||||||
[20] = {entity = {name = 'stone-wall'}},
|
[20] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -66,7 +68,10 @@ return {
|
|||||||
[24] = {tile = 'hazard-concrete-left'},
|
[24] = {tile = 'hazard-concrete-left'},
|
||||||
[25] = {entity = {name = 'stone-wall'}},
|
[25] = {entity = {name = 'stone-wall'}},
|
||||||
[26] = {tile = 'hazard-concrete-left'},
|
[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'},
|
[28] = {tile = 'hazard-concrete-left'},
|
||||||
[29] = {entity = {name = 'gun-turret', offset = 3}, tile = 'concrete'},
|
[29] = {entity = {name = 'gun-turret', offset = 3}, tile = 'concrete'},
|
||||||
[30] = {tile = 'concrete'},
|
[30] = {tile = 'concrete'},
|
||||||
@@ -78,6 +83,7 @@ return {
|
|||||||
[36] = {tile = 'concrete'}
|
[36] = {tile = 'concrete'}
|
||||||
},
|
},
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.refill_liquid_turret_callback, data = ob.light_oil_ammo},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {tile = 'hazard-concrete-left'},
|
[3] = {tile = 'hazard-concrete-left'},
|
||||||
@@ -88,7 +94,10 @@ return {
|
|||||||
[8] = {entity = {name = 'stone-wall'}},
|
[8] = {entity = {name = 'stone-wall'}},
|
||||||
[9] = {tile = 'hazard-concrete-left'},
|
[9] = {tile = 'hazard-concrete-left'},
|
||||||
[10] = {tile = 'concrete'},
|
[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'},
|
[12] = {tile = 'concrete'},
|
||||||
[13] = {tile = 'hazard-concrete-left'},
|
[13] = {tile = 'hazard-concrete-left'},
|
||||||
[14] = {tile = 'hazard-concrete-left'},
|
[14] = {tile = 'hazard-concrete-left'},
|
||||||
@@ -103,7 +112,7 @@ return {
|
|||||||
[23] = {tile = 'concrete'},
|
[23] = {tile = 'concrete'},
|
||||||
[24] = {tile = 'concrete'},
|
[24] = {tile = 'concrete'},
|
||||||
[25] = {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'},
|
[27] = {tile = 'concrete'},
|
||||||
[28] = {tile = 'concrete'},
|
[28] = {tile = 'concrete'},
|
||||||
[29] = {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
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
local level2 =
|
local factory = {
|
||||||
ob.make_1_way {
|
callback = ob.magic_item_crafting_callback,
|
||||||
force = 'neutral',
|
data = {
|
||||||
loot = {callback = loot_callback},
|
recipe = 'iron-gear-wheel',
|
||||||
[1] = {tile = 'concrete'},
|
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'iron-gear-wheel'}
|
||||||
[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 market = {
|
||||||
|
callback = ob.market_set_items_callback,
|
||||||
|
data = {
|
||||||
|
{
|
||||||
|
name = 'iron-gear-wheel',
|
||||||
|
price = 0.5,
|
||||||
|
distance_factor = 0.005 / 32,
|
||||||
|
min_price = 0.05
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = 'iron-plate',
|
||||||
|
price = 0.4,
|
||||||
|
distance_factor = 0.005 / 32,
|
||||||
|
min_price = 0.04
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = 'steel-plate',
|
||||||
|
price = 2,
|
||||||
|
distance_factor = 0.005 / 32,
|
||||||
|
min_price = 0.2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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 =
|
local level3 =
|
||||||
ob.make_1_way {
|
ob.extend_1_way(
|
||||||
force = 'neutral',
|
base_factory[2],
|
||||||
factory = {
|
{
|
||||||
callback = ob.magic_item_crafting_callback,
|
factory = factory,
|
||||||
data = {
|
fallback = level2
|
||||||
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 =
|
local level4 =
|
||||||
ob.make_1_way {
|
ob.extend_1_way(
|
||||||
force = 'neutral',
|
base_factory[3],
|
||||||
market = {
|
{
|
||||||
callback = ob.market_set_items_callback,
|
market = market,
|
||||||
data = {
|
fallback = level3
|
||||||
{
|
}
|
||||||
offer = {type = 'give-item', item = 'iron-gear-wheel', count = 100},
|
)
|
||||||
name = 'coin',
|
|
||||||
price = 100,
|
|
||||||
distance_factor = 1 / 32,
|
|
||||||
min_price = 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
offer = {type = 'give-item', item = 'iron-plate', count = 100},
|
|
||||||
name = 'coin',
|
|
||||||
price = 80,
|
|
||||||
distance_factor = 1 / 32,
|
|
||||||
min_price = 8
|
|
||||||
},
|
|
||||||
{
|
|
||||||
offer = {type = 'give-item', item = 'steel-plate', count = 100},
|
|
||||||
name = 'coin',
|
|
||||||
price = 400,
|
|
||||||
distance_factor = 1 / 32,
|
|
||||||
min_price = 40
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
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'}
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
settings = {
|
settings = {
|
||||||
blocks = 7,
|
blocks = 7,
|
||||||
|
|||||||
@@ -18,182 +18,78 @@ local loot_callback =
|
|||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
local level2 =
|
local factory = {
|
||||||
ob.make_1_way {
|
callback = ob.magic_item_crafting_callback,
|
||||||
force = 'neutral',
|
data = {
|
||||||
loot = {callback = loot_callback},
|
furance_item = 'iron-ore',
|
||||||
[1] = {tile = 'concrete'},
|
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'iron-plate'}
|
||||||
[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 =
|
local factory_b = {
|
||||||
ob.make_1_way {
|
callback = ob.magic_item_crafting_callback,
|
||||||
force = 'neutral',
|
data = {
|
||||||
factory = {
|
furance_item = {name = 'iron-plate', count = 100},
|
||||||
callback = ob.magic_item_crafting_callback,
|
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'steel-plate'}
|
||||||
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 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 =
|
local level3b =
|
||||||
ob.extend_1_way(
|
ob.extend_1_way(
|
||||||
level3,
|
base_factory[2],
|
||||||
{
|
{
|
||||||
factory = {
|
factory = factory_b,
|
||||||
callback = ob.magic_item_crafting_callback,
|
fallback = level2
|
||||||
data = {
|
|
||||||
furance_item = {name = 'iron-plate', count = 100},
|
|
||||||
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'steel-plate'}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
local level4 =
|
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(
|
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 {
|
return {
|
||||||
settings = {
|
settings = {
|
||||||
blocks = 7,
|
blocks = 7,
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ local ob = require 'map_gen.presets.crash_site.outpost_builder'
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {entity = {name = 'stone-wall'}},
|
[3] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -21,9 +22,9 @@ return {
|
|||||||
[17] = {tile = 'hazard-concrete-left'},
|
[17] = {tile = 'hazard-concrete-left'},
|
||||||
[18] = {tile = 'concrete'},
|
[18] = {tile = 'concrete'},
|
||||||
[19] = {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'},
|
[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'},
|
[23] = {tile = 'hazard-concrete-left'},
|
||||||
[24] = {tile = 'concrete'},
|
[24] = {tile = 'concrete'},
|
||||||
[25] = {tile = 'hazard-concrete-left'},
|
[25] = {tile = 'hazard-concrete-left'},
|
||||||
@@ -40,6 +41,7 @@ return {
|
|||||||
[36] = {tile = 'concrete'}
|
[36] = {tile = 'concrete'}
|
||||||
},
|
},
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {entity = {name = 'stone-wall'}},
|
[3] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -54,9 +56,9 @@ return {
|
|||||||
[12] = {entity = {name = 'stone-wall'}},
|
[12] = {entity = {name = 'stone-wall'}},
|
||||||
[13] = {entity = {name = 'stone-wall'}},
|
[13] = {entity = {name = 'stone-wall'}},
|
||||||
[14] = {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'},
|
[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'},
|
[18] = {tile = 'hazard-concrete-left'},
|
||||||
[19] = {entity = {name = 'stone-wall'}},
|
[19] = {entity = {name = 'stone-wall'}},
|
||||||
[20] = {entity = {name = 'stone-wall'}},
|
[20] = {entity = {name = 'stone-wall'}},
|
||||||
@@ -66,7 +68,7 @@ return {
|
|||||||
[24] = {tile = 'concrete'},
|
[24] = {tile = 'concrete'},
|
||||||
[25] = {entity = {name = 'stone-wall'}},
|
[25] = {entity = {name = 'stone-wall'}},
|
||||||
[26] = {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'},
|
[28] = {tile = 'hazard-concrete-left'},
|
||||||
[29] = {entity = {name = 'medium-electric-pole'}, tile = 'concrete'},
|
[29] = {entity = {name = 'medium-electric-pole'}, tile = 'concrete'},
|
||||||
[30] = {tile = 'hazard-concrete-left'},
|
[30] = {tile = 'hazard-concrete-left'},
|
||||||
@@ -78,6 +80,7 @@ return {
|
|||||||
[36] = {entity = {name = 'medium-electric-pole'}, tile = 'concrete'}
|
[36] = {entity = {name = 'medium-electric-pole'}, tile = 'concrete'}
|
||||||
},
|
},
|
||||||
ob.make_4_way {
|
ob.make_4_way {
|
||||||
|
turret = {callback = ob.power_source_callback, data = ob.laser_turrent_power_source},
|
||||||
[1] = {entity = {name = 'stone-wall'}},
|
[1] = {entity = {name = 'stone-wall'}},
|
||||||
[2] = {entity = {name = 'stone-wall'}},
|
[2] = {entity = {name = 'stone-wall'}},
|
||||||
[3] = {tile = 'concrete'},
|
[3] = {tile = 'concrete'},
|
||||||
@@ -87,7 +90,7 @@ return {
|
|||||||
[7] = {entity = {name = 'stone-wall'}},
|
[7] = {entity = {name = 'stone-wall'}},
|
||||||
[8] = {entity = {name = 'stone-wall'}},
|
[8] = {entity = {name = 'stone-wall'}},
|
||||||
[9] = {tile = 'hazard-concrete-left'},
|
[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'},
|
[11] = {tile = 'hazard-concrete-left'},
|
||||||
[12] = {tile = 'concrete'},
|
[12] = {tile = 'concrete'},
|
||||||
[13] = {tile = 'concrete'},
|
[13] = {tile = 'concrete'},
|
||||||
@@ -97,7 +100,7 @@ return {
|
|||||||
[17] = {tile = 'concrete'},
|
[17] = {tile = 'concrete'},
|
||||||
[18] = {tile = 'hazard-concrete-left'},
|
[18] = {tile = 'hazard-concrete-left'},
|
||||||
[19] = {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'},
|
[21] = {tile = 'hazard-concrete-left'},
|
||||||
[22] = {tile = 'concrete'},
|
[22] = {tile = 'concrete'},
|
||||||
[23] = {tile = 'hazard-concrete-left'},
|
[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 = {
|
data = {
|
||||||
{
|
{
|
||||||
name = 'copper-cable',
|
name = 'copper-cable',
|
||||||
price = 50 / 200,
|
price = 0.25,
|
||||||
distance_factor = 1 / 200 / 32,
|
distance_factor = 0.005 / 32,
|
||||||
min_price = 5 / 200
|
min_price = 0.025
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = 'electronic-circuit',
|
name = 'electronic-circuit',
|
||||||
price = 200 / 200,
|
price = 1,
|
||||||
distance_factor = 1 / 200 / 32,
|
distance_factor = 0.005 / 32,
|
||||||
min_price = 10 / 200
|
min_price = 0.05
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name = 'advanced-circuit',
|
name = 'advanced-circuit',
|
||||||
price = 2000 / 200,
|
price = 10,
|
||||||
distance_factor = 1 / 200 / 32,
|
distance_factor = 0.005 / 32,
|
||||||
min_price = 100 / 200
|
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
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
local level2 =
|
local factory = {
|
||||||
ob.make_1_way {
|
callback = ob.magic_item_crafting_callback,
|
||||||
force = 'neutral',
|
data = {
|
||||||
loot = {callback = loot_callback},
|
recipe = 'iron-gear-wheel',
|
||||||
[1] = {tile = 'stone-path'},
|
output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 100, item = 'iron-gear-wheel'}
|
||||||
[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 market = {
|
||||||
|
callback = ob.market_set_items_callback,
|
||||||
|
data = {
|
||||||
|
{
|
||||||
|
name = 'iron-gear-wheel',
|
||||||
|
price = 0.5,
|
||||||
|
distance_factor = 0.005 / 32,
|
||||||
|
min_price = 0.05
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = 'iron-plate',
|
||||||
|
price = 0.4,
|
||||||
|
distance_factor = 0.005 / 32,
|
||||||
|
min_price = 0.04
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = 'steel-plate',
|
||||||
|
price = 2,
|
||||||
|
distance_factor = 0.005 / 32,
|
||||||
|
min_price = 0.2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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 =
|
local level3 =
|
||||||
ob.make_1_way {
|
ob.extend_1_way(
|
||||||
force = 'neutral',
|
base_factory[2],
|
||||||
factory = {
|
{
|
||||||
callback = ob.magic_item_crafting_callback,
|
factory = factory,
|
||||||
data = {
|
fallback = level2
|
||||||
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 =
|
local level4 =
|
||||||
ob.make_1_way {
|
ob.extend_1_way(
|
||||||
force = 'neutral',
|
base_factory[3],
|
||||||
market = {
|
{
|
||||||
callback = ob.market_set_items_callback,
|
market = market,
|
||||||
data = {
|
fallback = level3
|
||||||
{
|
}
|
||||||
offer = {type = 'give-item', item = 'iron-gear-wheel', count = 100},
|
)
|
||||||
name = 'coin',
|
|
||||||
price = 100,
|
|
||||||
distance_factor = 1 / 32,
|
|
||||||
min_price = 10
|
|
||||||
},
|
|
||||||
{
|
|
||||||
offer = {type = 'give-item', item = 'iron-plate', count = 100},
|
|
||||||
name = 'coin',
|
|
||||||
price = 80,
|
|
||||||
distance_factor = 1 / 32,
|
|
||||||
min_price = 8
|
|
||||||
},
|
|
||||||
{
|
|
||||||
offer = {type = 'give-item', item = 'steel-plate', count = 100},
|
|
||||||
name = 'coin',
|
|
||||||
price = 400,
|
|
||||||
distance_factor = 1 / 32,
|
|
||||||
min_price = 40
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
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'}
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
settings = {
|
settings = {
|
||||||
blocks = 6,
|
blocks = 6,
|
||||||
|
|||||||
@@ -18,160 +18,51 @@ local loot_callback =
|
|||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
local level2 =
|
local factory = {
|
||||||
ob.make_1_way {
|
callback = ob.magic_item_crafting_callback,
|
||||||
force = 'neutral',
|
data = {
|
||||||
loot = {callback = loot_callback},
|
furance_item = 'iron-ore',
|
||||||
[1] = {tile = 'stone-path'},
|
output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 100, item = 'iron-plate'}
|
||||||
[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 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.small_furance'
|
||||||
|
|
||||||
|
local level2 = ob.extend_1_way(base_factory[1], {loot = {callback = loot_callback}})
|
||||||
local level3 =
|
local level3 =
|
||||||
ob.make_1_way {
|
ob.extend_1_way(
|
||||||
force = 'neutral',
|
base_factory[2],
|
||||||
factory = {
|
{
|
||||||
callback = ob.magic_item_crafting_callback,
|
factory = factory,
|
||||||
data = {
|
fallback = level2
|
||||||
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 =
|
local level4 =
|
||||||
ob.make_1_way {
|
ob.extend_1_way(
|
||||||
force = 'neutral',
|
base_factory[3],
|
||||||
market = {
|
{
|
||||||
callback = ob.market_set_items_callback,
|
market = market,
|
||||||
data = {
|
fallback = level3
|
||||||
{
|
}
|
||||||
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 = '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 {
|
return {
|
||||||
settings = {
|
settings = {
|
||||||
blocks = 6,
|
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