diff --git a/map_gen/presets/crash_site.lua b/map_gen/presets/crash_site.lua index 160ca913..05a6bf21 100644 --- a/map_gen/presets/crash_site.lua +++ b/map_gen/presets/crash_site.lua @@ -8,8 +8,8 @@ local Random = require 'map_gen.shared.random' local OutpostBuilder = require 'map_gen.presets.crash_site.outpost_builder' local Perlin = require 'map_gen.shared.perlin_noise' -local outpost_seed = 7000 -local ore_seed = 9000 +local outpost_seed = 20000 +local ore_seed = 14000 local enemy_seed = 420420 local outpost_random = Random.new(outpost_seed, outpost_seed * 2) @@ -24,6 +24,10 @@ local small_copper_plate_factory = require 'map_gen.presets.crash_site.outpost_d 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_stone_factory = require 'map_gen.presets.crash_site.outpost_data.small_stone_factory' +local medium_stone_factory = require 'map_gen.presets.crash_site.outpost_data.medium_stone_factory' +local big_stone_factory = require 'map_gen.presets.crash_site.outpost_data.big_stone_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' @@ -32,14 +36,14 @@ local small_circuit_factory = require 'map_gen.presets.crash_site.outpost_data.s local medium_circuit_factory = require 'map_gen.presets.crash_site.outpost_data.medium_circuit_factory' local big_circuit_factory = require 'map_gen.presets.crash_site.outpost_data.big_circuit_factory' -local small_engine_factory = require 'map_gen.presets.crash_site.outpost_data.small_engine_factory' -local medium_engine_factory = require 'map_gen.presets.crash_site.outpost_data.medium_engine_factory' -local big_engine_factory = require 'map_gen.presets.crash_site.outpost_data.big_engine_factory' - local small_ammo_factory = require 'map_gen.presets.crash_site.outpost_data.small_ammo_factory' local medium_ammo_factory = require 'map_gen.presets.crash_site.outpost_data.medium_ammo_factory' local big_ammo_factory = require 'map_gen.presets.crash_site.outpost_data.big_ammo_factory' +local small_weapon_factory = require 'map_gen.presets.crash_site.outpost_data.small_weapon_factory' +local medium_weapon_factory = require 'map_gen.presets.crash_site.outpost_data.medium_weapon_factory' +local big_weapon_factory = require 'map_gen.presets.crash_site.outpost_data.big_weapon_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' @@ -52,14 +56,18 @@ local small_chemical_factory = require 'map_gen.presets.crash_site.outpost_data. local medium_chemical_factory = require 'map_gen.presets.crash_site.outpost_data.medium_chemical_factory' local big_chemical_factory = require 'map_gen.presets.crash_site.outpost_data.big_chemical_factory' +--[[ local small_power_factory = require 'map_gen.presets.crash_site.outpost_data.small_power_factory' +local medium_power_factory = require 'map_gen.presets.crash_site.outpost_data.medium_power_factory' +local big_power_factory = require 'map_gen.presets.crash_site.outpost_data.big_power_factory' ]] local stage1 = { small_iron_plate_factory, small_iron_plate_factory, small_copper_plate_factory, + small_stone_factory, small_gear_factory, small_circuit_factory, - small_engine_factory, small_ammo_factory, + small_weapon_factory, small_science_factory, small_oil_refinery, small_chemical_factory @@ -68,10 +76,11 @@ local stage1 = { local stage2 = { medium_iron_plate_factory, medium_copper_plate_factory, + medium_stone_factory, medium_gear_factory, medium_circuit_factory, - medium_engine_factory, medium_ammo_factory, + medium_weapon_factory, medium_science_factory, medium_oil_refinery, medium_chemical_factory @@ -80,10 +89,11 @@ local stage2 = { local stage3 = { big_iron_plate_factory, big_copper_plate_factory, + big_stone_factory, big_gear_factory, big_circuit_factory, - big_engine_factory, big_ammo_factory, + big_weapon_factory, big_science_factory, big_oil_refinery, big_chemical_factory @@ -171,7 +181,7 @@ local start_stone_patch = b.translate(start_patch, 32, 32), 'stone', function() - return 600 + return 900 end ) local start_coal_patch = @@ -212,9 +222,11 @@ end pattern[5][5] = start_outpost -local outpost_offset = 64 -local grid_size = 200 -local half_total_size = grid_size * 0.5 * 8 +local outpost_offset = 59 +local grid_block_size = 190 +local grid_number_of_blocks = 10 + +local half_total_size = grid_block_size * 0.5 * 8 for r = 4, 7 do local row = pattern[r] @@ -248,9 +260,9 @@ for r = 3, 8 do end end -for r = 1, 10 do +for r = 1, grid_number_of_blocks do local row = pattern[r] - for c = 1, 10 do + for c = 1, grid_number_of_blocks do if not row[c] then local template = stage3_iter() local shape = outpost_builder:do_outpost(template) @@ -264,9 +276,7 @@ for r = 1, 10 do end end - - -local outposts = b.grid_pattern(pattern, 10, 10, grid_size, grid_size) +local outposts = b.grid_pattern(pattern, 10, 10, grid_block_size, grid_block_size) --outposts = b.if_else(outposts, b.full_shape) local spawners = { @@ -280,8 +290,8 @@ local worms = { 'big-worm-turret' } -local max_spawner_chance = 1 / 160 -local spawner_chance_factor = 1 / (160 * 512) +local max_spawner_chance = 1 / 256 +local spawner_chance_factor = 1 / (256 * 512) local max_worm_chance = 1 / 32 local worm_chance_factor = 1 / (32 * 512) @@ -294,7 +304,7 @@ local function enemy(x, y, world) --[[ if Perlin.noise(x * scale_factor, y * scale_factor, enemy_seed) < 0 then return nil end ]] - local spawner_chance = d - 144 + local spawner_chance = d - 128 if spawner_chance > 0 then spawner_chance = spawner_chance * spawner_chance_factor @@ -305,7 +315,7 @@ local function enemy(x, y, world) end end - local worm_chance = d - 144 + local worm_chance = d - 128 if worm_chance > 0 then worm_chance = worm_chance * worm_chance_factor @@ -461,9 +471,14 @@ spawn_shape = b.change_tile(spawn_shape, false, 'stone-path') map = b.choose(b.rectangle(16, 16), spawn_shape, map) ---return outpost_builder:do_outpost(big_engine_factory) +local bounds = b.rectangle(grid_block_size * (grid_number_of_blocks - 1)) +map = b.choose(bounds, map, b.empty_shape) + +--return outpost_builder:do_outpost(small_power_factory) --return b.full_shape return map +--return spawn_shape --return b.apply_entity(b.full_shape, ore_grid) +--/c game.player.character = nil diff --git a/map_gen/presets/crash_site/market.lua b/map_gen/presets/crash_site/market.lua index 985811bd..a8dc7a7e 100644 --- a/map_gen/presets/crash_site/market.lua +++ b/map_gen/presets/crash_site/market.lua @@ -1,6 +1,7 @@ local Gui = require 'utils.gui' local Event = require 'utils.event' local Global = require 'utils.global' +local PlayerStats = require 'player_stats' local Public = {} @@ -243,6 +244,7 @@ Gui.on_click( else player.remove_item {name = 'coin', count = cost} do_coin_label(player, data.coin_label) + PlayerStats.change_coin_spent(player.index, cost) end end end diff --git a/map_gen/presets/crash_site/outpost_builder.lua b/map_gen/presets/crash_site/outpost_builder.lua index 9af548d1..f13e6027 100644 --- a/map_gen/presets/crash_site/outpost_builder.lua +++ b/map_gen/presets/crash_site/outpost_builder.lua @@ -4,6 +4,7 @@ local Global = require 'utils.global' local Event = require 'utils.event' local Task = require 'utils.Task' local Market = require 'map_gen.presets.crash_site.market' +local PlayerStats = require 'player_stats' local b = require 'map_gen.shared.builders' @@ -945,6 +946,22 @@ Public.power_source_callback = end ) +Public.power_source_player_callback = + Token.register( + function(entity, data) + local power_source = + entity.surface.create_entity {name = 'hidden-electric-energy-interface', position = entity.position} + power_source.electric_buffer_size = data.buffer_size + power_source.power_production = data.power_production + + power_sources[entity.unit_number] = power_source + + entity.minable = false + entity.operable = false + entity.destructible = false + end +) + local function add_magic_crafter_output(entity, output, distance) local rate = output.min_rate + output.distance_factor * distance table.insert( @@ -1049,13 +1066,16 @@ Public.market_set_items_callback = local market_data = {} for i, item in ipairs(data) do local price = item.price - local df = item.distance_factor or 0 - local min_price = item.min_price or 1 - local count = price - d * df - count = math.max(count, min_price) + local df = item.distance_factor + if df then + local min_price = item.min_price or 1 - market_data[i] = {name = item.name, price = count} + price = item.price - d * df + price = math.max(price, min_price) + end + + market_data[i] = {name = item.name, price = price} end Market.add_market(entity.position, market_data) @@ -1154,6 +1174,13 @@ function Public.do_random_fluid_loot(entity, weights, loot) entity.fluidbox[1] = {name = stack.name, amount = count} end +local function coin_mined(event) + local stack = event.item_stack + if stack.name == 'coin' then + PlayerStats.change_coin_earned(event.player_index, stack.count) + end +end + Event.add(defines.events.on_tick, tick) Event.add(defines.events.on_entity_died, remove_power_source) @@ -1163,4 +1190,6 @@ Event.on_init( end ) +Event.add(defines.events.on_player_mined_item, coin_mined) + return Public diff --git a/map_gen/presets/crash_site/outpost_data/big_ammo_factory.lua b/map_gen/presets/crash_site/outpost_data/big_ammo_factory.lua index 4981868a..a4e99e8a 100644 --- a/map_gen/presets/crash_site/outpost_data/big_ammo_factory.lua +++ b/map_gen/presets/crash_site/outpost_data/big_ammo_factory.lua @@ -3,14 +3,11 @@ local Token = require 'utils.global_token' local loot = { {weight = 10}, - {stack = {name = 'coin', count = 250, distance_factor = 1 / 20}, weight = 5}, - {stack = {name = 'uranium-rounds-magazine', count = 600, distance_factor = 1 / 2}, weight = 5}, - {stack = {name = 'piercing-shotgun-shell', count = 600, distance_factor = 1 / 4}, weight = 1}, + {stack = {name = 'coin', count = 500, distance_factor = 1 / 8}, weight = 5}, + {stack = {name = 'uranium-rounds-magazine', count = 2000, distance_factor = 1}, weight = 5}, {stack = {name = 'cluster-grenade', count = 200, distance_factor = 1 / 8}, weight = 2}, - {stack = {name = 'explosive-rocket', count = 200, distance_factor = 1 / 8}, weight = 5}, {stack = {name = 'explosive-cannon-shell', count = 200, distance_factor = 1 / 8}, weight = 5}, - {stack = {name = 'explosive-uranium-cannon-shell', count = 200, distance_factor = 1 / 8}, weight = 2}, - {stack = {name = 'destroyer-capsule', count = 100, distance_factor = 1 / 16}, weight = 2} + {stack = {name = 'explosive-uranium-cannon-shell', count = 200, distance_factor = 1 / 8}, weight = 2} } local weights = ob.prepare_weighted_loot(loot) @@ -26,23 +23,15 @@ local factory = { callback = ob.magic_item_crafting_callback, data = { recipe = 'uranium-rounds-magazine', - output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 512, item = 'uranium-rounds-magazine'} + output = {min_rate = 2 / 60, distance_factor = 2 / 60 / 512, item = 'uranium-rounds-magazine'} } } local factory_b = { - callback = ob.magic_item_crafting_callback, - data = { - recipe = 'explosive-rocket', - output = {min_rate = 1 / 3 / 60, distance_factor = 1 / 3 / 60 / 512, item = 'explosive-rocket'} - } -} - -local factory_c = { callback = ob.magic_item_crafting_callback, data = { recipe = 'explosive-uranium-cannon-shell', - output = {min_rate = 1 / 3 / 60, distance_factor = 1 / 3 / 60 / 512, item = 'explosive-uranium-cannon-shell'} + output = {min_rate = 1 / 2 / 60, distance_factor = 1 / 2 / 60 / 512, item = 'explosive-uranium-cannon-shell'} } } @@ -51,39 +40,27 @@ local market = { data = { { name = 'firearm-magazine', - price = 1, - distance_factor = 0.5 / 512, + price = 0.5, + distance_factor = 0.25 / 512, min_price = 0.1 }, { name = 'piercing-rounds-magazine', - price = 3, - distance_factor = 1.5 / 512, - min_price = 0.3 + price = 1.5, + distance_factor = 0.75 / 512, + min_price = 0.15 }, { name = 'uranium-rounds-magazine', - price = 9, - distance_factor = 4.5 / 512, - min_price = 0.9 - }, - { - name = 'shotgun-shell', - price = 2, - distance_factor = 1 / 512, - min_price = 0.2 - }, - { - name = 'piercing-shotgun-shell', - price = 6, - distance_factor = 3 / 512, - min_price = 0.6 + price = 4.5, + distance_factor = 2.25 / 512, + min_price = 0.45 }, { name = 'grenade', - price = 10, - distance_factor = 5 / 512, - min_price = 1 + price = 5, + distance_factor = 2.5 / 512, + min_price = 0.5 }, { name = 'land-mine', @@ -91,65 +68,29 @@ local market = { distance_factor = 0.5 / 512, min_price = 0.1 }, - { - name = 'rocket', - price = 20, - distance_factor = 10 / 512, - min_price = 2 - }, - { - name = 'explosive-rocket', - price = 40, - distance_factor = 20 / 512, - min_price = 4 - }, - { - name = 'rocket-launcher', - price = 250, - distance_factor = 125 / 512, - min_price = 125 - }, { name = 'cluster-grenade', - price = 100, - distance_factor = 50 / 512, - min_price = 10 - }, - { - name = 'poison-capsule', - price = 60, - distance_factor = 30 / 512, - min_price = 6 - }, - { - name = 'slowdown-capsule', - price = 60, - distance_factor = 60 / 512, - min_price = 6 + price = 50, + distance_factor = 25 / 512, + min_price = 5 }, { name = 'cannon-shell', - price = 60, - distance_factor = 60 / 512, - min_price = 6 + price = 15, + distance_factor = 7.5 / 512, + min_price = 1.5 }, { name = 'explosive-cannon-shell', - price = 120, - distance_factor = 120 / 512, - min_price = 12 + price = 30, + distance_factor = 15 / 512, + min_price = 3 }, { name = 'explosive-uranium-cannon-shell', - price = 160, - distance_factor = 80 / 512, - min_price = 16 - }, - { - name = 'destroyer-capsule', - price = 80, - distance_factor = 40 / 512, - min_price = 8 + price = 60, + distance_factor = 30 / 512, + min_price = 6 }, { name = 'vehicle-machine-gun', @@ -187,21 +128,13 @@ local level3b = max_count = 2 } ) -local level3c = - ob.extend_1_way( - base_factory[2], - { - factory = factory_c, - fallback = level3b, - max_count = 2 - } -) + local level4 = ob.extend_1_way( base_factory[3], { market = market, - fallback = level3c + fallback = level3b } ) diff --git a/map_gen/presets/crash_site/outpost_data/big_chemical_factory.lua b/map_gen/presets/crash_site/outpost_data/big_chemical_factory.lua index a56a4cf7..792d1c3b 100644 --- a/map_gen/presets/crash_site/outpost_data/big_chemical_factory.lua +++ b/map_gen/presets/crash_site/outpost_data/big_chemical_factory.lua @@ -9,7 +9,9 @@ local loot = { {stack = {name = 'plastic-bar', count = 1000, distance_factor = 1 / 2}, weight = 5}, {stack = {name = 'battery', count = 1200, distance_factor = 1 / 2}, weight = 5}, {stack = {name = 'explosives', count = 800, distance_factor = 1 / 2}, weight = 2}, - {stack = {name = 'rocket-fuel', count = 30, distance_factor = 1 / 20}, weight = 1} + {stack = {name = 'rocket-fuel', count = 30, distance_factor = 1 / 20}, weight = 1}, + {stack = {name = 'poison-capsule', count = 500, distance_factor = 1 / 4}, weight = 2}, + {stack = {name = 'slowdown-capsule', count = 500, distance_factor = 1 / 4}, weight = 1} } local weights = ob.prepare_weighted_loot(loot) @@ -88,6 +90,18 @@ local market = { price = 10, distance_factor = 5 / 512, min_price = 1 + }, + { + name = 'poison-capsule', + price = 15, + distance_factor = 7.5 / 512, + min_price = 1.5 + }, + { + name = 'slowdown-capsule', + price = 15, + distance_factor = 7.5 / 512, + min_price = 1.5 } } } diff --git a/map_gen/presets/crash_site/outpost_data/big_gear_factory.lua b/map_gen/presets/crash_site/outpost_data/big_gear_factory.lua index 8d1d313b..2377fbff 100644 --- a/map_gen/presets/crash_site/outpost_data/big_gear_factory.lua +++ b/map_gen/presets/crash_site/outpost_data/big_gear_factory.lua @@ -2,11 +2,18 @@ local ob = require 'map_gen.presets.crash_site.outpost_builder' local Token = require 'utils.global_token' local loot = { - {weight = 10}, + {weight = 5}, {stack = {name = 'coin', count = 250, distance_factor = 1 / 20}, weight = 5}, - {stack = {name = 'iron-plate', count = 2500, distance_factor = 1 / 2}, weight = 5}, - {stack = {name = 'steel-plate', count = 1000, distance_factor = 1 / 5}, weight = 1}, - {stack = {name = 'iron-gear-wheel', count = 4000, distance_factor = 1}, weight = 5} + {stack = {name = 'iron-plate', count = 2500, distance_factor = 1}, weight = 5}, + {stack = {name = 'steel-plate', count = 1000, distance_factor = 1}, weight = 1}, + {stack = {name = 'iron-gear-wheel', count = 4000, distance_factor = 2}, weight = 10}, + {stack = {name = 'engine-unit', count = 800, distance_factor = 1 / 2}, weight = 5}, + {stack = {name = 'electric-engine-unit', count = 400, distance_factor = 1 / 2}, weight = 5}, + {stack = {name = 'rail', count = 2500, distance_factor = 1}, weight = 1}, + {stack = {name = 'tank', count = 5, 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) @@ -22,7 +29,23 @@ local factory = { callback = ob.magic_item_crafting_callback, data = { recipe = 'iron-gear-wheel', - output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 512, item = 'iron-gear-wheel'} + output = {min_rate = 4 / 60, distance_factor = 4 / 60 / 512, item = 'iron-gear-wheel'} + } +} + +local factory_b = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'engine-unit', + output = {min_rate = 2 / 60, distance_factor = 2 / 60 / 512, item = 'engine-unit'} + } +} + +local factory_c = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'electric-engine-unit', + output = {min_rate = 2 / 60, distance_factor = 2 / 60 / 512, item = 'electric-engine-unit'} } } @@ -46,6 +69,54 @@ local market = { price = 2, distance_factor = 1 / 512, min_price = 0.2 + }, + { + name = 'engine-unit', + price = 4, + distance_factor = 2 / 512, + min_price = 0.4 + }, + { + name = 'electric-engine-unit', + price = 8, + distance_factor = 4 / 512, + min_price = 0.8 + }, + { + name = 'car', + price = 50, + distance_factor = 25 / 512, + min_price = 40 + }, + { + name = 'rail', + price = 1, + distance_factor = 0.5 / 512, + min_price = 0.1 + }, + { + name = 'tank', + price = 250, + distance_factor = 125 / 512, + min_price = 25 + }, + { + name = 'locomotive', + price = 100, + distance_factor = 50 / 512, + min_price = 10 + }, + { + name = 'cargo-wagon', + price = 20, + distance_factor = 10 / 512, + min_price = 2 + }, + { + name = 'fluid-wagon', + price = 40, + distance_factor = 20 / 512, + min_price = 4 } } } @@ -58,7 +129,26 @@ local level3 = base_factory[2], { factory = factory, - fallback = level2 + fallback = level2, + max_count = 4 + } +) +local level3b = + ob.extend_1_way( + base_factory[2], + { + factory = factory_b, + fallback = level2, + max_count = 2 + } +) +local level3c = + ob.extend_1_way( + base_factory[2], + { + factory = factory_c, + fallback = level3b, + max_count = 2 } ) local level4 = @@ -66,7 +156,7 @@ local level4 = base_factory[3], { market = market, - fallback = level3 + fallback = level3c } ) return { @@ -80,6 +170,6 @@ return { require 'map_gen.presets.crash_site.outpost_data.heavy_gun_turrets' }, bases = { - {level4, level2} + {level4, level3, level2} } } diff --git a/map_gen/presets/crash_site/outpost_data/big_power_factory.lua b/map_gen/presets/crash_site/outpost_data/big_power_factory.lua new file mode 100644 index 00000000..e69de29b diff --git a/map_gen/presets/crash_site/outpost_data/big_science_factory.lua b/map_gen/presets/crash_site/outpost_data/big_science_factory.lua index fc9bd3a5..a3d44c1b 100644 --- a/map_gen/presets/crash_site/outpost_data/big_science_factory.lua +++ b/map_gen/presets/crash_site/outpost_data/big_science_factory.lua @@ -25,7 +25,7 @@ local factory = { callback = ob.magic_item_crafting_callback, data = { recipe = 'production-science-pack', - output = {min_rate = 0.05 / 60, distance_factor = 0.05 / 60 / 512, item = 'production-science-pack'} + output = {min_rate = 0.25 / 60, distance_factor = 0.25 / 60 / 512, item = 'production-science-pack'} } } @@ -33,7 +33,7 @@ local factory_b = { callback = ob.magic_item_crafting_callback, data = { recipe = 'high-tech-science-pack', - output = {min_rate = 0.05 / 60, distance_factor = 0.05 / 60 / 512, item = 'high-tech-science-pack'} + output = {min_rate = 0.25 / 60, distance_factor = 0.25 / 60 / 512, item = 'high-tech-science-pack'} } } diff --git a/map_gen/presets/crash_site/outpost_data/big_stone_factory.lua b/map_gen/presets/crash_site/outpost_data/big_stone_factory.lua new file mode 100644 index 00000000..f65b9ab0 --- /dev/null +++ b/map_gen/presets/crash_site/outpost_data/big_stone_factory.lua @@ -0,0 +1,134 @@ +local ob = require 'map_gen.presets.crash_site.outpost_builder' +local Token = require 'utils.global_token' + +local loot = { + {weight = 5}, + {stack = {name = 'coin', count = 250, distance_factor = 1 / 20}, weight = 5}, + {stack = {name = 'stone', count = 1600}, weight = 8}, + {stack = {name = 'stone-brick', count = 2000, distance_factor = 1 / 2}, weight = 5}, + {stack = {name = 'concrete', count = 2000, distance_factor = 1 / 2}, weight = 5}, + {stack = {name = 'refined-concrete', count = 4000, distance_factor = 1 / 2}, weight = 10}, + {stack = {name = 'stone-wall', count = 1000, distance_factor = 1 / 5}, weight = 5}, + {stack = {name = 'gate', count = 250, distance_factor = 1 / 5}, 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 = { + furance_item = 'stone', + output = {min_rate = 2 / 60, distance_factor = 2 / 60 / 512, item = 'stone-brick'} + } +} + +local factory_b = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'refined-concrete', + output = {min_rate = 2 / 60, distance_factor = 2 / 60 / 512, item = 'refined-concrete'} + } +} + +local factory_c = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'electric-engine-unit', + output = {min_rate = 2 / 60, distance_factor = 2 / 60 / 512, item = 'electric-engine-unit'} + } +} + +local market = { + callback = ob.market_set_items_callback, + data = { + { + name = 'stone', + price = 0.25, + distance_factor = 0.125 / 512, + min_price = 0.025 + }, + { + name = 'stone-brick', + price = 0.5, + distance_factor = 0.25 / 512, + min_price = 0.05 + }, + { + name = 'concrete', + price = 0.5, + distance_factor = 0.25 / 512, + min_price = 0.05 + }, + { + name = 'refined-concrete', + price = 1, + distance_factor = 0.5 / 512, + min_price = 0.1 + }, + { + name = 'stone-wall', + price = 1, + distance_factor = 0.5 / 512, + min_price = 0.1 + }, + { + name = 'gate', + price = 2, + distance_factor = 1 / 512, + min_price = 0.2 + } + } +} + +local base_factory = require 'map_gen.presets.crash_site.outpost_data.big_furance' +local base_factory2 = 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, + max_count = 1 + } +) +local level3b = + ob.extend_1_way( + base_factory2[2], + { + factory = factory_b, + fallback = level3, + max_count = 2 + } +) +local level4 = + ob.extend_1_way( + base_factory[3], + { + market = market, + fallback = level3b + } +) +return { + settings = { + blocks = 9, + 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.walls' + }, + bases = { + {level4, level2} + } +} diff --git a/map_gen/presets/crash_site/outpost_data/big_weapon_factory.lua b/map_gen/presets/crash_site/outpost_data/big_weapon_factory.lua new file mode 100644 index 00000000..ae5ab628 --- /dev/null +++ b/map_gen/presets/crash_site/outpost_data/big_weapon_factory.lua @@ -0,0 +1,278 @@ +local ob = require 'map_gen.presets.crash_site.outpost_builder' +local Token = require 'utils.global_token' + +local loot = { + {weight = 3}, + {stack = {name = 'coin', count = 500, distance_factor = 1 / 8}, weight = 3}, + {stack = {name = 'raw-fish', count = 1000, distance_factor = 1}, weight = 1}, + {stack = {name = 'explosive-rocket', count = 1000, distance_factor = 1}, weight = 1}, + {stack = {name = 'laser-turret', count = 500, distance_factor = 1 / 8}, weight = 1}, + {stack = {name = 'cluster-grenade', count = 1000, distance_factor = 1}, weight = 1}, + {stack = {name = 'destroyer-capsule', count = 250, distance_factor = 1 / 8}, weight = 1}, + {stack = {name = 'power-armor-mk2', count = 5, distance_factor = 1 / 128}, weight = 1}, + {stack = {name = 'fusion-reactor-equipment', count = 25, distance_factor = 1 / 128}, weight = 1}, + {stack = {name = 'battery-mk2-equipment', count = 25, distance_factor = 1 / 128}, weight = 1}, + {stack = {name = 'energy-shield-mk2-equipment', count = 10, distance_factor = 1 / 64}, weight = 1}, + {stack = {name = 'exoskeleton-equipment', count = 10, distance_factor = 1 / 64}, weight = 1}, + {stack = {name = 'personal-laser-defense-equipment', count = 10, distance_factor = 1 / 64}, 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 = 'destroyer-capsule', + output = {min_rate = 0.5 / 60, distance_factor = 0.5 / 60 / 512, item = 'destroyer-capsule'} + } +} + +local factory_b = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'laser-turret', + output = {min_rate = 0.2 / 60, distance_factor = 0.2 / 60 / 512, item = 'laser-turret'} + } +} + +local market = { + callback = ob.market_set_items_callback, + data = { + { + name = 'raw-fish', + price = 1, + distance_factor = 0.5 / 512, + min_price = 0.1 + }, + { + name = 'combat-shotgun', + price = 125, + distance_factor = 62.5 / 512, + min_price = 62.5 + }, + { + name = 'shotgun-shell', + price = 1, + distance_factor = 0.5 / 512, + min_price = 0.1 + }, + { + name = 'piercing-shotgun-shell', + price = 3, + distance_factor = 1.5 / 512, + min_price = 0.3 + }, + { + name = 'flamethrower', + price = 175, + distance_factor = 87.5 / 512, + min_price = 87.5 + }, + { + name = 'flamethrower-ammo', + price = 7.5, + distance_factor = 3.75 / 512, + min_price = 0.75 + }, + { + name = 'rocket-launcher', + price = 250, + distance_factor = 125 / 512, + min_price = 125 + }, + { + name = 'rocket', + price = 10, + distance_factor = 5 / 512, + min_price = 1 + }, + { + name = 'explosive-rocket', + price = 20, + distance_factor = 10 / 512, + min_price = 2 + }, + { + name = 'grenade', + price = 5, + distance_factor = 5 / 512, + min_price = 0.5 + }, + { + name = 'cluster-grenade', + price = 50, + distance_factor = 25 / 512, + min_price = 5 + }, + { + name = 'destroyer-capsule', + price = 50, + distance_factor = 25 / 512, + min_price = 5 + }, + { + name = 'modular-armor', + price = 175 + }, + { + name = 'power-armor', + price = 500, + distance_factor = 250 / 512, + min_price = 250 + }, + { + name = 'power-armor-mk2', + price = 1000, + distance_factor = 500 / 512, + min_price = 250 + }, + { + name = 'solar-panel-equipment', + price = 10, + distance_factor = 5 / 512, + min_price = 1 + }, + { + name = 'fusion-reactor-equipment', + price = 250, + distance_factor = 125 / 512, + min_price = 75 + }, + { + name = 'battery-equipment', + price = 10, + distance_factor = 5 / 512, + min_price = 1 + }, + { + name = 'battery-mk2-equipment', + price = 50, + distance_factor = 25 / 512, + min_price = 5 + }, + { + name = 'energy-shield-equipment', + price = 10, + distance_factor = 5 / 512, + min_price = 1 + }, + { + name = 'energy-shield-mk2-equipment', + price = 50, + distance_factor = 25 / 512, + min_price = 5 + }, + { + name = 'exoskeleton-equipment', + price = 50, + distance_factor = 25 / 512, + min_price = 5 + }, + { + name = 'night-vision-equipment', + price = 10, + distance_factor = 5 / 512, + min_price = 1 + }, + { + name = 'personal-laser-defense-equipment', + price = 100, + distance_factor = 50 / 512, + min_price = 10 + }, + { + name = 'vehicle-machine-gun', + price = 1000 + }, + { + name = 'tank-cannon', + price = 500 + }, + { + name = 'artillery-wagon-cannon', + price = 2000 + }, + { + name = 'gun-turret', + price = 10, + distance_factor = 5 / 512, + min_price = 1 + }, + { + name = 'flamethrower-turret', + price = 20, + distance_factor = 10 / 512, + min_price = 2 + }, + { + name = 'laser-turret', + price = 30, + distance_factor = 15 / 512, + min_price = 3 + } + } +} + +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 = 3 + } +) +local level3b = + ob.extend_1_way( + base_factory[2], + { + factory = factory_b, + fallback = level3, + max_count = 3 + } +) + +local level4 = + ob.extend_1_way( + base_factory[3], + { + market = market, + fallback = level3b + } +) + +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} + } +} diff --git a/map_gen/presets/crash_site/outpost_data/medium_ammo_factory.lua b/map_gen/presets/crash_site/outpost_data/medium_ammo_factory.lua index 11f238cd..a2046f16 100644 --- a/map_gen/presets/crash_site/outpost_data/medium_ammo_factory.lua +++ b/map_gen/presets/crash_site/outpost_data/medium_ammo_factory.lua @@ -3,20 +3,14 @@ local Token = require 'utils.global_token' local loot = { {weight = 10}, - {stack = {name = 'coin', count = 75, distance_factor = 1 / 20}, 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 = 'coin', count = 150, distance_factor = 1 / 8}, weight = 5}, + {stack = {name = 'piercing-rounds-magazine', count = 500, distance_factor = 1}, weight = 5}, + {stack = {name = 'uranium-rounds-magazine', count = 250, distance_factor = 1 / 2}, weight = 5}, + {stack = {name = 'grenade', count = 200, 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} + {stack = {name = 'cluster-grenade', count = 100, distance_factor = 1 / 32}, weight = 1} } local weights = ob.prepare_weighted_loot(loot) @@ -32,7 +26,7 @@ local factory = { callback = ob.magic_item_crafting_callback, data = { recipe = 'piercing-rounds-magazine', - output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 512, item = 'piercing-rounds-magazine'} + output = {min_rate = 1.5 / 60, distance_factor = 1.5 / 60 / 512, item = 'piercing-rounds-magazine'} } } @@ -40,7 +34,7 @@ local factory_b = { callback = ob.magic_item_crafting_callback, data = { recipe = 'cannon-shell', - output = {min_rate = 1 / 3 / 60, distance_factor = 1 / 60 / 512, item = 'cannon-shell'} + output = {min_rate = 1 / 2 / 60, distance_factor = 1 / 2 / 60 / 512, item = 'cannon-shell'} } } @@ -48,7 +42,7 @@ local factory_c = { callback = ob.magic_item_crafting_callback, data = { recipe = 'uranium-rounds-magazine', - output = {min_rate = 1 / 3 / 60, distance_factor = 1 / 3 / 60 / 512, item = 'uranium-rounds-magazine'} + output = {min_rate = 1 / 2 / 60, distance_factor = 1 / 2 / 60 / 512, item = 'uranium-rounds-magazine'} } } @@ -73,18 +67,6 @@ local market = { distance_factor = 4.5 / 512, min_price = 0.9 }, - { - name = 'shotgun-shell', - price = 2, - distance_factor = 1 / 512, - min_price = 0.2 - }, - { - name = 'piercing-shotgun-shell', - price = 6, - distance_factor = 3 / 512, - min_price = 0.6 - }, { name = 'grenade', price = 10, @@ -97,59 +79,23 @@ local market = { distance_factor = 0.5 / 512, min_price = 0.1 }, - { - name = 'rocket', - price = 20, - distance_factor = 10 / 512, - min_price = 2 - }, - { - name = 'explosive-rocket', - price = 40, - distance_factor = 20 / 512, - min_price = 4 - }, - { - name = 'rocket-launcher', - price = 250, - distance_factor = 125 / 512, - min_price = 125 - }, { name = 'cluster-grenade', price = 100, distance_factor = 50 / 512, min_price = 10 }, - { - name = 'poison-capsule', - price = 60, - distance_factor = 30 / 512, - min_price = 6 - }, - { - name = 'slowdown-capsule', - price = 60, - distance_factor = 30 / 512, - min_price = 6 - }, { name = 'cannon-shell', - price = 60, - distance_factor = 30 / 512, - min_price = 6 + price = 15, + distance_factor = 7.5 / 512, + min_price = 1.5 }, { name = 'explosive-cannon-shell', - price = 120, - distance_factor = 60 / 512, - min_price = 12 - }, - { - name = 'destroyer-capsule', - price = 80, - distance_factor = 40 / 512, - min_price = 8 + price = 30, + distance_factor = 15 / 512, + min_price = 3 } } } @@ -162,7 +108,8 @@ local level3 = base_factory[2], { factory = factory, - fallback = level2 + fallback = level2, + max_count = 4 } ) local level3b = @@ -179,8 +126,8 @@ local level3c = base_factory[2], { factory = factory_c, - fallback = level3b, - max_count = 1 + fallback = level3, + max_count = 2 } ) local level4 = @@ -204,6 +151,6 @@ return { require 'map_gen.presets.crash_site.outpost_data.heavy_flame_turrets' }, bases = { - {level4, level2} + {level4, level3b, level2} } } diff --git a/map_gen/presets/crash_site/outpost_data/medium_chemical_factory.lua b/map_gen/presets/crash_site/outpost_data/medium_chemical_factory.lua index 575217f9..6837514c 100644 --- a/map_gen/presets/crash_site/outpost_data/medium_chemical_factory.lua +++ b/map_gen/presets/crash_site/outpost_data/medium_chemical_factory.lua @@ -8,7 +8,9 @@ local loot = { {stack = {name = 'sulfur', count = 500, distance_factor = 1 / 2}, weight = 3}, {stack = {name = 'plastic-bar', count = 500, distance_factor = 1 / 2}, weight = 3}, {stack = {name = 'battery', count = 600, distance_factor = 1 / 2}, weight = 5}, - {stack = {name = 'explosives', count = 400, distance_factor = 1 / 2}, weight = 5} + {stack = {name = 'explosives', count = 400, distance_factor = 1 / 2}, weight = 5}, + {stack = {name = 'poison-capsule', count = 100, distance_factor = 1 / 16}, weight = 2}, + {stack = {name = 'slowdown-capsule', count = 100, distance_factor = 1 / 16}, weight = 1} } local weights = ob.prepare_weighted_loot(loot) @@ -74,7 +76,19 @@ local market = { price = 3, distance_factor = 1.5 / 512, min_price = 0.3 - } + }, + { + name = 'poison-capsule', + price = 30, + distance_factor = 15 / 512, + min_price = 3 + }, + { + name = 'slowdown-capsule', + price = 30, + distance_factor = 15 / 512, + min_price = 3 + }, } } diff --git a/map_gen/presets/crash_site/outpost_data/medium_gear_factory.lua b/map_gen/presets/crash_site/outpost_data/medium_gear_factory.lua index 1f18cb3a..437000cc 100644 --- a/map_gen/presets/crash_site/outpost_data/medium_gear_factory.lua +++ b/map_gen/presets/crash_site/outpost_data/medium_gear_factory.lua @@ -2,11 +2,18 @@ local ob = require 'map_gen.presets.crash_site.outpost_builder' local Token = require 'utils.global_token' local loot = { - {weight = 10}, + {weight = 5}, {stack = {name = 'coin', count = 75, distance_factor = 1 / 20}, weight = 5}, - {stack = {name = 'iron-plate', count = 750, distance_factor = 1 / 2}, weight = 5}, - {stack = {name = 'steel-plate', count = 200, distance_factor = 1 / 5}, weight = 1}, - {stack = {name = 'iron-gear-wheel', count = 1500, distance_factor = 1}, weight = 5} + {stack = {name = 'iron-plate', count = 1000, distance_factor = 1}, weight = 5}, + {stack = {name = 'steel-plate', count = 500, distance_factor = 1 / 2}, weight = 1}, + {stack = {name = 'iron-gear-wheel', count = 1500, distance_factor = 1}, weight = 10}, + {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) @@ -22,7 +29,23 @@ local factory = { callback = ob.magic_item_crafting_callback, data = { recipe = 'iron-gear-wheel', - output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 512, item = 'iron-gear-wheel'} + output = {min_rate = 2 / 60, distance_factor = 2 / 60 / 512, item = 'iron-gear-wheel'} + } +} + +local factory_b = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'engine-unit', + output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 512, item = 'engine-unit'} + } +} + +local factory_c = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'electric-engine-unit', + output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 512, item = 'electric-engine-unit'} } } @@ -46,6 +69,54 @@ local market = { price = 2, distance_factor = 1 / 512, min_price = 0.2 + }, + { + name = 'engine-unit', + price = 4, + distance_factor = 2 / 512, + min_price = 0.4 + }, + { + name = 'electric-engine-unit', + price = 8, + distance_factor = 4 / 512, + min_price = 0.8 + }, + { + name = 'car', + price = 50, + distance_factor = 25 / 512, + min_price = 40 + }, + { + name = 'tank', + price = 250, + distance_factor = 125 / 512, + min_price = 25 + }, + { + name = 'locomotive', + price = 100, + distance_factor = 50 / 512, + min_price = 40 + }, + { + name = 'cargo-wagon', + price = 20, + distance_factor = 10 / 512, + min_price = 10 + }, + { + name = 'fluid-wagon', + price = 40, + distance_factor = 20 / 512, + min_price = 20 + }, + { + name = 'rail', + price = 1, + distance_factor = 0.5 / 512, + min_price = 0.1 } } } @@ -58,7 +129,27 @@ local level3 = base_factory[2], { factory = factory, - fallback = level2 + fallback = level2, + max_count = 2 + } +) +local level3b = + ob.extend_1_way( + base_factory[2], + { + factory = factory_b, + fallback = level2, + max_count = 2 + } +) + +local level3c = + ob.extend_1_way( + base_factory[2], + { + factory = factory_c, + fallback = level3b, + max_count = 2 } ) local level4 = @@ -66,7 +157,7 @@ local level4 = base_factory[3], { market = market, - fallback = level3 + fallback = level3c } ) return { @@ -80,6 +171,6 @@ return { require 'map_gen.presets.crash_site.outpost_data.medium_gun_turrets' }, bases = { - {level4, level2} + {level4, level3, level2} } } diff --git a/map_gen/presets/crash_site/outpost_data/medium_power_factory.lua b/map_gen/presets/crash_site/outpost_data/medium_power_factory.lua new file mode 100644 index 00000000..e69de29b diff --git a/map_gen/presets/crash_site/outpost_data/medium_science_factory.lua b/map_gen/presets/crash_site/outpost_data/medium_science_factory.lua index ad0c88e8..4addf7d1 100644 --- a/map_gen/presets/crash_site/outpost_data/medium_science_factory.lua +++ b/map_gen/presets/crash_site/outpost_data/medium_science_factory.lua @@ -23,7 +23,7 @@ local factory = { callback = ob.magic_item_crafting_callback, data = { recipe = 'military-science-pack', - output = {min_rate = 0.05 / 60, distance_factor = 0.05 / 60 / 512, item = 'military-science-pack'} + output = {min_rate = 0.25 / 60, distance_factor = 0.25 / 60 / 512, item = 'military-science-pack'} } } @@ -31,7 +31,7 @@ local factory_b = { callback = ob.magic_item_crafting_callback, data = { recipe = 'science-pack-3', - output = {min_rate = 0.05 / 60, distance_factor = 0.05 / 60 / 512, item = 'science-pack-3'} + output = {min_rate = 0.25 / 60, distance_factor = 0.25 / 60 / 512, item = 'science-pack-3'} } } diff --git a/map_gen/presets/crash_site/outpost_data/medium_stone_factory.lua b/map_gen/presets/crash_site/outpost_data/medium_stone_factory.lua new file mode 100644 index 00000000..88e6b4c4 --- /dev/null +++ b/map_gen/presets/crash_site/outpost_data/medium_stone_factory.lua @@ -0,0 +1,120 @@ +local ob = require 'map_gen.presets.crash_site.outpost_builder' +local Token = require 'utils.global_token' + +local loot = { + {weight = 5}, + {stack = {name = 'coin', count = 75, distance_factor = 1 / 20}, weight = 5}, + {stack = {name = 'stone', count = 1600}, weight = 8}, + {stack = {name = 'stone-brick', count = 1000, distance_factor = 1 / 2}, weight = 10}, + {stack = {name = 'concrete', count = 1000, distance_factor = 1 / 2}, weight = 10}, + {stack = {name = 'stone-wall', count = 500, distance_factor = 1 / 5}, weight = 5}, + {stack = {name = 'gate', count = 100, distance_factor = 1 / 5}, 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 = { + furance_item = 'stone', + output = {min_rate = 2 / 60, distance_factor = 2 / 60 / 512, item = 'stone-brick'} + } +} + +local factory_b = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'concrete', + output = {min_rate = 2 / 60, distance_factor = 2 / 60 / 512, item = 'concrete'} + } +} + +local market = { + callback = ob.market_set_items_callback, + data = { + { + name = 'stone', + price = 0.25, + distance_factor = 0.125 / 512, + min_price = 0.025 + }, + { + name = 'stone-brick', + price = 0.5, + distance_factor = 0.25 / 512, + min_price = 0.05 + }, + { + name = 'concrete', + price = 0.5, + distance_factor = 0.25 / 512, + min_price = 0.05 + }, + { + name = 'stone-wall', + price = 1, + distance_factor = 0.5 / 512, + min_price = 0.1 + }, + { + name = 'gate', + price = 2, + distance_factor = 1 / 512, + min_price = 0.2 + } + } +} + +local base_factory = require 'map_gen.presets.crash_site.outpost_data.medium_furance' +local base_factory2 = require 'map_gen.presets.crash_site.outpost_data.medium_factory' + +local level2 = ob.extend_1_way(base_factory[1], {loot = {callback = loot_callback}}) +local level3 = + ob.extend_1_way( + base_factory[2], + { + factory = factory, + fallback = level2, + max_count = 1 + } +) +local level3b = + ob.extend_1_way( + base_factory2[2], + { + factory = factory_b, + fallback = level3, + max_count = 2 + } +) + +local level4 = + ob.extend_1_way( + base_factory[3], + { + market = market, + fallback = level3b + } +) +return { + settings = { + blocks = 7, + variance = 3, + min_step = 2, + max_level = 2 + }, + walls = { + require 'map_gen.presets.crash_site.outpost_data.medium_gun_turrets', + require 'map_gen.presets.crash_site.outpost_data.walls' + }, + bases = { + {level4, level2} + } +} diff --git a/map_gen/presets/crash_site/outpost_data/medium_weapon_factory.lua b/map_gen/presets/crash_site/outpost_data/medium_weapon_factory.lua new file mode 100644 index 00000000..ec2c2493 --- /dev/null +++ b/map_gen/presets/crash_site/outpost_data/medium_weapon_factory.lua @@ -0,0 +1,254 @@ +local ob = require 'map_gen.presets.crash_site.outpost_builder' +local Token = require 'utils.global_token' + +local loot = { + {weight = 5}, + {stack = {name = 'coin', count = 150, distance_factor = 1 / 8}, weight = 3}, + {stack = {name = 'raw-fish', count = 100, distance_factor = 1 / 8}, weight = 1}, + {stack = {name = 'piercing-shotgun-shell', count = 500, distance_factor = 1 / 8}, weight = 1}, + {stack = {name = 'flamethrower-ammo', count = 250, distance_factor = 1 / 8}, weight = 1}, + {stack = {name = 'rocket', count = 200, distance_factor = 1 / 8}, weight = 1}, + {stack = {name = 'explosive-rocket', count = 200, distance_factor = 1 / 8}, weight = 1}, + {stack = {name = 'gun-turret', count = 250, distance_factor = 1 / 16}, weight = 1}, + {stack = {name = 'flamethrower-turret', count = 250, distance_factor = 1 / 16}, weight = 1}, + {stack = {name = 'cluster-grenade', count = 100, distance_factor = 1 / 32}, weight = 1}, + {stack = {name = 'power-armor', count = 5, distance_factor = 1 / 128}, weight = 1}, + {stack = {name = 'solar-panel-equipment', count = 25, distance_factor = 1 / 32}, weight = 1}, + {stack = {name = 'fusion-reactor-equipment', count = 5, distance_factor = 1 / 128}, weight = 1}, + {stack = {name = 'battery-equipment', count = 25, distance_factor = 1 / 128}, weight = 1}, + {stack = {name = 'battery-mk2-equipment', count = 5, distance_factor = 1 / 128}, weight = 1}, + {stack = {name = 'energy-shield-equipment', count = 50, distance_factor = 1 / 64}, weight = 1}, + {stack = {name = 'energy-shield-mk2-equipment', count = 10, distance_factor = 1 / 64}, weight = 1}, + {stack = {name = 'exoskeleton-equipment', count = 10, distance_factor = 1 / 64}, weight = 1}, + {stack = {name = 'night-vision-equipment', count = 5, distance_factor = 1 / 64}, 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 = 'explosive-rocket', + output = {min_rate = 0.5 / 60, distance_factor = 0.5 / 60 / 512, item = 'explosive-rocket'} + } +} + +local factory_b = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'cluster-grenade', + output = {min_rate = 0.2 / 60, distance_factor = 0.2 / 60 / 512, item = 'cluster-grenade'} + } +} + +local factory_c = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'flamethrower-turret', + output = {min_rate = 0.2 / 60, distance_factor = 0.2 / 60 / 512, item = 'flamethrower-turret'} + } +} + +local market = { + callback = ob.market_set_items_callback, + data = { + { + name = 'raw-fish', + price = 1, + distance_factor = 0.5 / 512, + min_price = 0.1 + }, + { + name = 'combat-shotgun', + price = 125, + distance_factor = 62.5 / 512, + min_price = 62.5 + }, + { + name = 'shotgun-shell', + price = 1, + distance_factor = 0.5 / 512, + min_price = 0.1 + }, + { + name = 'piercing-shotgun-shell', + price = 3, + distance_factor = 1.5 / 512, + min_price = 0.3 + }, + { + name = 'flamethrower', + price = 175, + distance_factor = 87.5 / 512, + min_price = 87.5 + }, + { + name = 'flamethrower-ammo', + price = 7.5, + distance_factor = 3.75 / 512, + min_price = 0.75 + }, + { + name = 'rocket-launcher', + price = 250, + distance_factor = 125 / 512, + min_price = 125 + }, + { + name = 'rocket', + price = 10, + distance_factor = 5 / 512, + min_price = 1 + }, + { + name = 'explosive-rocket', + price = 20, + distance_factor = 10 / 512, + min_price = 2 + }, + { + name = 'grenade', + price = 5, + distance_factor = 5 / 512, + min_price = 0.5 + }, + { + name = 'cluster-grenade', + price = 50, + distance_factor = 25 / 512, + min_price = 5 + }, + { + name = 'modular-armor', + price = 175 + }, + { + name = 'power-armor', + price = 500, + distance_factor = 250 / 512, + min_price = 250 + }, + { + name = 'solar-panel-equipment', + price = 75, + distance_factor = 37.5 / 512, + min_price = 7.5 + }, + { + name = 'fusion-reactor-equipment', + price = 625, + distance_factor = 312.5 / 512, + min_price = 312.5 + }, + { + name = 'battery-equipment', + price = 50, + distance_factor = 25 / 512, + min_price = 5 + }, + { + name = 'battery-mk2-equipment', + price = 250, + distance_factor = 125 / 512, + min_price = 125 + }, + { + name = 'energy-shield-equipment', + price = 50, + distance_factor = 37.5 / 512, + min_price = 15 + }, + { + name = 'energy-shield-mk2-equipment', + price = 100, + distance_factor = 50 / 512, + min_price = 25 + }, + { + name = 'exoskeleton-equipment', + price = 100, + distance_factor = 50 / 512, + min_price = 10 + }, + { + name = 'night-vision-equipment', + price = 50, + distance_factor = 25 / 512, + min_price = 5 + }, + { + name = 'gun-turret', + price = 20, + distance_factor = 10 / 512, + min_price = 2 + }, + { + name = 'flamethrower-turret', + price = 50, + distance_factor = 25 / 512, + min_price = 5 + } + } +} + +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 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 = 2 + } +) +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, level3b, level2} + } +} diff --git a/map_gen/presets/crash_site/outpost_data/nuclear_reactor_block.lua b/map_gen/presets/crash_site/outpost_data/nuclear_reactor_block.lua new file mode 100644 index 00000000..f4317406 --- /dev/null +++ b/map_gen/presets/crash_site/outpost_data/nuclear_reactor_block.lua @@ -0,0 +1,41 @@ +local ob = require 'map_gen.presets.crash_site.outpost_builder' + +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] = {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 = 'nuclear-reactor', callback = 'power'}, 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'} +} diff --git a/map_gen/presets/crash_site/outpost_data/small_ammo_factory.lua b/map_gen/presets/crash_site/outpost_data/small_ammo_factory.lua index 3df6bd4f..fe5c7edb 100644 --- a/map_gen/presets/crash_site/outpost_data/small_ammo_factory.lua +++ b/map_gen/presets/crash_site/outpost_data/small_ammo_factory.lua @@ -3,16 +3,15 @@ local Token = require 'utils.global_token' local loot = { {weight = 10}, - {stack = {name = 'coin', count = 50, distance_factor = 1 / 20}, weight = 5}, + {stack = {name = 'coin', count = 100, distance_factor = 1 / 8}, 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 = 'piercing-rounds-magazine', count = 250, distance_factor = 1 / 2}, weight = 5}, + {stack = {name = 'shotgun-shell', count = 200, distance_factor = 1 / 4}, weight = 1}, + {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 = 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} + {stack = {name = 'cluster-grenade', count = 10, distance_factor = 1 / 32}, weight = 1} } local weights = ob.prepare_weighted_loot(loot) @@ -36,15 +35,7 @@ local factory_b = { callback = ob.magic_item_crafting_callback, data = { recipe = 'piercing-rounds-magazine', - output = {min_rate = 1 / 3 / 60, distance_factor = 1 / 3 / 60 / 512, item = 'piercing-rounds-magazine'} - } -} - -local factory_c = { - callback = ob.magic_item_crafting_callback, - data = { - recipe = 'grenade', - output = {min_rate = 1 / 3 / 60, distance_factor = 1 / 3 / 60 / 512, item = 'grenade'} + output = {min_rate = 1 / 2 / 60, distance_factor = 1 / 2 / 60 / 512, item = 'piercing-rounds-magazine'} } } @@ -81,29 +72,11 @@ local market = { distance_factor = 0.5 / 512, min_price = 0.1 }, - { - name = 'rocket', - price = 20, - distance_factor = 10 / 512, - min_price = 2 - }, - { - name = 'rocket-launcher', - price = 250, - distance_factor = 125 / 512, - min_price = 125 - }, { name = 'cluster-grenade', price = 100, distance_factor = 50 / 512, min_price = 10 - }, - { - name = 'poison-capsule', - price = 60, - distance_factor = 30 / 512, - min_price = 6 } } } @@ -128,21 +101,13 @@ local level3b = 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 + fallback = level3b } ) return { diff --git a/map_gen/presets/crash_site/outpost_data/small_chemical_factory.lua b/map_gen/presets/crash_site/outpost_data/small_chemical_factory.lua index 743482ae..513903b9 100644 --- a/map_gen/presets/crash_site/outpost_data/small_chemical_factory.lua +++ b/map_gen/presets/crash_site/outpost_data/small_chemical_factory.lua @@ -6,7 +6,9 @@ local loot = { {stack = {name = 'coin', count = 50, distance_factor = 1 / 20}, weight = 5}, {stack = {name = 'coal', count = 1000, distance_factor = 1}, weight = 2}, {stack = {name = 'sulfur', count = 500, distance_factor = 1 / 2}, weight = 5}, - {stack = {name = 'plastic-bar', count = 500, distance_factor = 1 / 2}, weight = 5} + {stack = {name = 'plastic-bar', count = 500, distance_factor = 1 / 2}, weight = 5}, + {stack = {name = 'poison-capsule', count = 50, distance_factor = 1 / 32}, weight = 2}, + {stack = {name = 'slowdown-capsule', count = 50, distance_factor = 1 / 32}, weight = 1} } local weights = ob.prepare_weighted_loot(loot) @@ -60,7 +62,19 @@ local market = { price = 1, distance_factor = 0.5 / 512, min_price = 0.1 - } + }, + { + name = 'poison-capsule', + price = 30, + distance_factor = 15 / 512, + min_price = 3 + }, + { + name = 'slowdown-capsule', + price = 30, + distance_factor = 15 / 512, + min_price = 3 + }, } } diff --git a/map_gen/presets/crash_site/outpost_data/small_gear_factory.lua b/map_gen/presets/crash_site/outpost_data/small_gear_factory.lua index 4c3e638c..6d8233f5 100644 --- a/map_gen/presets/crash_site/outpost_data/small_gear_factory.lua +++ b/map_gen/presets/crash_site/outpost_data/small_gear_factory.lua @@ -6,7 +6,12 @@ local loot = { {stack = {name = 'coin', count = 50, distance_factor = 1 / 20}, weight = 5}, {stack = {name = 'iron-plate', count = 500, distance_factor = 1 / 2}, weight = 5}, {stack = {name = 'steel-plate', count = 100, distance_factor = 1 / 5}, weight = 1}, - {stack = {name = 'iron-gear-wheel', count = 1000, distance_factor = 1}, weight = 5} + {stack = {name = 'iron-gear-wheel', count = 1000, distance_factor = 1}, weight = 5}, + {stack = {name = 'pipe', count = 200, distance_factor = 1}, weight = 1}, + {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) @@ -26,6 +31,14 @@ local factory = { } } +local factory_b = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'engine-unit', + output = {min_rate = 0.5 / 60, distance_factor = 0.5 / 60 / 512, item = 'engine-unit'} + } +} + local market = { callback = ob.market_set_items_callback, data = { @@ -46,6 +59,36 @@ local market = { price = 2, distance_factor = 1 / 512, min_price = 0.2 + }, + { + name = 'engine-unit', + price = 4, + distance_factor = 2 / 512, + min_price = 0.4 + }, + { + name = 'electric-engine-unit', + price = 8, + distance_factor = 4 / 512, + min_price = 0.8 + }, + { + name = 'car', + price = 50, + distance_factor = 25 / 512, + min_price = 40 + }, + { + name = 'tank', + price = 500, + distance_factor = 250 / 512, + min_price = 250 + }, + { + name = 'rail', + price = 1, + distance_factor = 0.5 / 512, + min_price = 0.1 } } } @@ -61,12 +104,21 @@ local level3 = fallback = level2 } ) +local level3b = + ob.extend_1_way( + base_factory[2], + { + factory = factory_b, + fallback = level3, + max_count = 1 + } +) local level4 = ob.extend_1_way( base_factory[3], { market = market, - fallback = level3 + fallback = level3b } ) return { diff --git a/map_gen/presets/crash_site/outpost_data/small_power_factory.lua b/map_gen/presets/crash_site/outpost_data/small_power_factory.lua new file mode 100644 index 00000000..6bc0161c --- /dev/null +++ b/map_gen/presets/crash_site/outpost_data/small_power_factory.lua @@ -0,0 +1,117 @@ +local ob = require 'map_gen.presets.crash_site.outpost_builder' +local Token = require 'utils.global_token' + +local loot = { + {weight = 10}, + {stack = {name = 'coin', count = 50, distance_factor = 1 / 20}, weight = 5}, + {stack = {name = 'coal', count = 1000, distance_factor = 1}, weight = 5}, + {stack = {name = 'solid-fuel', count = 500, distance_factor = 1}, weight = 5}, + {stack = {name = 'boiler', count = 25, distance_factor = 1 / 2}, weight = 5}, + {stack = {name = 'steam-engine', count = 50, distance_factor = 1 / 5}, weight = 5}, + {stack = {name = 'offshore-pump', count = 5, distance_factor = 1}, weight = 5}, + {stack = {name = 'pipe', count = 200, distance_factor = 1}, weight = 5}, + {stack = {name = 'pipe-to-ground', count = 50, distance_factor = 1 / 2}, weight = 5}, + {stack = {name = 'medium-electric-pole', count = 50, distance_factor = 1 / 2}, weight = 5} +} + +local weights = ob.prepare_weighted_loot(loot) + +local loot_callback = + Token.register( + function(chest) + ob.do_random_loot(chest, weights, loot) + end +) + +local market = { + callback = ob.market_set_items_callback, + data = { + { + name = 'coal', + price = 0.5, + distance_factor = 0.25 / 512, + min_price = 0.05 + }, + { + name = 'solid-fuel', + price = 1.25, + distance_factor = 0.75 / 512, + min_price = 0.125 + }, + { + name = 'boiler', + price = 3, + distance_factor = 1.5 / 512, + min_price = 0.3 + }, + { + name = 'steam-engine', + price = 6, + distance_factor = 3 / 512, + min_price = 0.6 + }, + { + name = 'offshore-pump', + price = 2, + distance_factor = 1 / 512, + min_price = 0.2 + }, + { + name = 'pipe', + price = 0.25, + distance_factor = 0.125 / 512, + min_price = 0.025 + }, + { + name = 'pipe-to-ground', + price = 2.5, + distance_factor = 1.25 / 512, + min_price = 0.25 + }, + { + name = 'medium-electric-pole', + price = 2, + distance_factor = 1 / 512, + min_price = 0.2 + } + } +} + +local base_factory = require 'map_gen.presets.crash_site.outpost_data.small_factory' +local power_factory = require 'map_gen.presets.crash_site.outpost_data.steam_engine_block' + +local level2 = ob.extend_1_way(base_factory[1], {loot = {callback = loot_callback}}) +local level3 = + ob.extend_1_way( + power_factory, + { + power = power, + fallback = level2, + max_count = 4 + } +) + +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', + --require 'map_gen.presets.crash_site.outpost_data.light_laser_turrets' + require 'map_gen.presets.crash_site.outpost_data.walls' + }, + bases = { + {level4, level2} + } +} diff --git a/map_gen/presets/crash_site/outpost_data/small_science_factory.lua b/map_gen/presets/crash_site/outpost_data/small_science_factory.lua index 5c7cb331..b395d6b6 100644 --- a/map_gen/presets/crash_site/outpost_data/small_science_factory.lua +++ b/map_gen/presets/crash_site/outpost_data/small_science_factory.lua @@ -21,7 +21,7 @@ local factory = { callback = ob.magic_item_crafting_callback, data = { recipe = 'science-pack-1', - output = {min_rate = 0.05 / 60, distance_factor = 0.05 / 60 / 512, item = 'science-pack-1'} + output = {min_rate = 0.25 / 60, distance_factor = 0.25 / 60 / 512, item = 'science-pack-1'} } } @@ -29,7 +29,7 @@ local factory_b = { callback = ob.magic_item_crafting_callback, data = { recipe = 'science-pack-2', - output = {min_rate = 0.05 / 60, distance_factor = 0.05 / 60 / 512, item = 'science-pack-2'} + output = {min_rate = 0.25 / 60, distance_factor = 0.25 / 60 / 512, item = 'science-pack-2'} } } diff --git a/map_gen/presets/crash_site/outpost_data/small_stone_factory.lua b/map_gen/presets/crash_site/outpost_data/small_stone_factory.lua new file mode 100644 index 00000000..a3525f26 --- /dev/null +++ b/map_gen/presets/crash_site/outpost_data/small_stone_factory.lua @@ -0,0 +1,112 @@ +local ob = require 'map_gen.presets.crash_site.outpost_builder' +local Token = require 'utils.global_token' + +local loot = { + {weight = 5}, + {stack = {name = 'coin', count = 50, distance_factor = 1 / 20}, weight = 5}, + {stack = {name = 'stone', count = 1600}, weight = 8}, + {stack = {name = 'stone-brick', count = 500, distance_factor = 1 / 2}, weight = 10}, + {stack = {name = 'stone-wall', count = 250, distance_factor = 1 / 5}, weight = 5}, + {stack = {name = 'gate', count = 50, distance_factor = 1 / 5}, 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 = { + furance_item = 'stone', + output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 512, item = 'stone-brick'} + } +} + +local factory_b = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'stone-wall', + output = {min_rate = 1 / 60, distance_factor = 1 / 60 / 512, item = 'stone-wall'} + } +} + +local market = { + callback = ob.market_set_items_callback, + data = { + { + name = 'stone', + price = 0.25, + distance_factor = 0.125 / 512, + min_price = 0.025 + }, + { + name = 'stone-brick', + price = 0.5, + distance_factor = 0.25 / 512, + min_price = 0.05 + }, + { + name = 'stone-wall', + price = 1, + distance_factor = 0.5 / 512, + min_price = 0.1 + }, + { + name = 'gate', + price = 2, + distance_factor = 1 / 512, + min_price = 0.2 + } + } +} + +local base_factory = require 'map_gen.presets.crash_site.outpost_data.small_furance' +local base_factory2 = require 'map_gen.presets.crash_site.outpost_data.small_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 = 1 + } +) +local level3b = + ob.extend_1_way( + base_factory2[2], + { + factory = factory_b, + fallback = level3, + max_count = 1 + } +) +local level4 = + ob.extend_1_way( + base_factory[3], + { + market = market, + fallback = level3b + } +) +return { + settings = { + blocks = 6, + variance = 3, + min_step = 2, + max_level = 2 + }, + walls = { + require 'map_gen.presets.crash_site.outpost_data.light_gun_turrets', + require 'map_gen.presets.crash_site.outpost_data.walls' + }, + bases = { + {level4, level2} + } +} diff --git a/map_gen/presets/crash_site/outpost_data/small_weapon_factory.lua b/map_gen/presets/crash_site/outpost_data/small_weapon_factory.lua new file mode 100644 index 00000000..6866e32e --- /dev/null +++ b/map_gen/presets/crash_site/outpost_data/small_weapon_factory.lua @@ -0,0 +1,213 @@ +local ob = require 'map_gen.presets.crash_site.outpost_builder' +local Token = require 'utils.global_token' + +local loot = { + {weight = 5}, + {stack = {name = 'coin', count = 100, distance_factor = 1 / 8}, weight = 3}, + {stack = {name = 'raw-fish', count = 50, distance_factor = 1 / 16}, weight = 1}, + {stack = {name = 'combat-shotgun', count = 5, distance_factor = 1 / 128}, weight = 1}, + {stack = {name = 'shotgun-shell', count = 200, distance_factor = 1 / 8}, weight = 1}, + {stack = {name = 'piercing-shotgun-shell', count = 50, distance_factor = 1 / 8}, weight = 1}, + {stack = {name = 'flamethrower', count = 5, distance_factor = 1 / 128}, weight = 1}, + {stack = {name = 'flamethrower-ammo', count = 50, distance_factor = 1 / 8}, weight = 1}, + {stack = {name = 'rocket-launcher', count = 5, distance_factor = 1 / 128}, weight = 1}, + {stack = {name = 'rocket', count = 50, distance_factor = 1 / 8}, weight = 1}, + {stack = {name = 'gun-turret', count = 50, distance_factor = 1 / 16}, weight = 1}, + {stack = {name = 'flamethrower-turret', count = 50, distance_factor = 1 / 16}, weight = 1}, + {stack = {name = 'grenade', count = 100, distance_factor = 1 / 8}, weight = 1}, + {stack = {name = 'cluster-grenade', count = 10, distance_factor = 1 / 32}, weight = 1}, + {stack = {name = 'modular-armor', count = 5, distance_factor = 1 / 128}, weight = 1}, + {stack = {name = 'solar-panel-equipment', count = 25, distance_factor = 1 / 32}, weight = 1}, + {stack = {name = 'battery-equipment', count = 5, distance_factor = 1 / 128}, weight = 1}, + {stack = {name = 'energy-shield-equipment', count = 10, distance_factor = 1 / 64}, 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-shotgun-shell', + output = {min_rate = 0.5 / 60, distance_factor = 0.5 / 60 / 512, item = 'piercing-shotgun-shell'} + } +} + +local factory_b = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'grenade', + output = {min_rate = 0.2 / 60, distance_factor = 0.2 / 60 / 512, item = 'grenade'} + } +} + +local factory_c = { + callback = ob.magic_item_crafting_callback, + data = { + recipe = 'gun-turret', + output = {min_rate = 0.2 / 60, distance_factor = 0.2 / 60 / 512, item = 'gun-turret'} + } +} + +local market = { + callback = ob.market_set_items_callback, + data = { + { + name = 'raw-fish', + price = 1, + distance_factor = 0.5 / 512, + min_price = 0.1 + }, + { + name = 'combat-shotgun', + price = 125, + distance_factor = 62.5 / 512, + min_price = 62.5 + }, + { + name = 'shotgun-shell', + price = 1, + distance_factor = 0.5 / 512, + min_price = 0.1 + }, + { + name = 'piercing-shotgun-shell', + price = 3, + distance_factor = 1.5 / 512, + min_price = 0.3 + }, + { + name = 'flamethrower', + price = 175, + distance_factor = 87.5 / 512, + min_price = 87.5 + }, + { + name = 'flamethrower-ammo', + price = 7.5, + distance_factor = 3.75 / 512, + min_price = 0.75 + }, + { + name = 'rocket-launcher', + price = 250, + distance_factor = 125 / 512, + min_price = 125 + }, + { + name = 'rocket', + price = 20, + distance_factor = 10 / 512, + min_price = 2 + }, + { + name = 'grenade', + price = 5, + distance_factor = 5 / 512, + min_price = 0.5 + }, + { + name = 'cluster-grenade', + price = 100, + distance_factor = 50 / 512, + min_price = 10 + }, + { + name = 'modular-armor', + price = 350, + distance_factor = 175 / 512, + min_price = 175 + }, + { + name = 'solar-panel-equipment', + price = 75, + distance_factor = 37.5 / 512, + min_price = 37.5 + }, + { + name = 'battery-equipment', + price = 50, + distance_factor = 25 / 512, + min_price = 25 + }, + { + name = 'energy-shield-equipment', + price = 75, + distance_factor = 37.5 / 512, + min_price = 37.5 + }, + { + name = 'gun-turret', + price = 20, + distance_factor = 10 / 512, + min_price = 2 + }, + { + name = 'flamethrower-turret', + price = 100, + distance_factor = 50 / 512, + min_price = 50 + } + } +} + +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 = 1 + } +) +local level3b = + ob.extend_1_way( + base_factory[2], + { + factory = factory_b, + fallback = level3, + max_count = 1 + } +) +local level3c = + ob.extend_1_way( + base_factory[2], + { + factory = factory_c, + fallback = level3b, + max_count = 4 + } +) +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, level3b, level2} + } +} diff --git a/map_gen/presets/crash_site/outpost_data/solar_panel_block.lua b/map_gen/presets/crash_site/outpost_data/solar_panel_block.lua new file mode 100644 index 00000000..37f7eb52 --- /dev/null +++ b/map_gen/presets/crash_site/outpost_data/solar_panel_block.lua @@ -0,0 +1,41 @@ +local ob = require 'map_gen.presets.crash_site.outpost_builder' + +return 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] = {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 = 'solar-panel', callback = 'power'}, 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'} +} diff --git a/map_gen/presets/crash_site/outpost_data/steam_engine_block.lua b/map_gen/presets/crash_site/outpost_data/steam_engine_block.lua new file mode 100644 index 00000000..807fc0b7 --- /dev/null +++ b/map_gen/presets/crash_site/outpost_data/steam_engine_block.lua @@ -0,0 +1,41 @@ +local ob = require 'map_gen.presets.crash_site.outpost_builder' + +return ob.make_1_way { + force = 'neutral', + [1] = {tile = 'stone-path'}, + [2] = {tile = 'concrete'}, + [3] = {tile = 'concrete'}, + [4] = {tile = 'concrete'}, + [5] = {tile = 'stone-path'}, + [6] = {tile = 'stone-path'}, + [7] = {tile = 'stone-path'}, + [8] = {tile = 'concrete'}, + [9] = {tile = 'concrete'}, + [10] = {tile = 'concrete'}, + [11] = {tile = 'stone-path'}, + [12] = {tile = 'stone-path'}, + [13] = {tile = 'stone-path'}, + [14] = {tile = 'concrete'}, + [15] = {entity = {name = 'steam-engine', callback = 'power'}, tile = 'concrete'}, + [16] = {tile = 'concrete'}, + [17] = {tile = 'stone-path'}, + [18] = {tile = 'stone-path'}, + [19] = {tile = 'stone-path'}, + [20] = {tile = 'concrete'}, + [21] = {tile = 'concrete'}, + [22] = {tile = 'concrete'}, + [23] = {tile = 'stone-path'}, + [24] = {tile = 'stone-path'}, + [25] = {tile = 'stone-path'}, + [26] = {tile = 'concrete'}, + [27] = {tile = 'concrete'}, + [28] = {tile = 'concrete'}, + [29] = {tile = 'stone-path'}, + [30] = {tile = 'stone-path'}, + [31] = {tile = 'stone-path'}, + [32] = {tile = 'concrete'}, + [33] = {tile = 'concrete'}, + [34] = {tile = 'concrete'}, + [35] = {tile = 'stone-path'}, + [36] = {tile = 'stone-path'} +} diff --git a/map_gen/presets/crash_site/outpost_data/walls.lua b/map_gen/presets/crash_site/outpost_data/walls.lua index 7a612314..2757164e 100644 --- a/map_gen/presets/crash_site/outpost_data/walls.lua +++ b/map_gen/presets/crash_site/outpost_data/walls.lua @@ -13,7 +13,31 @@ return { [9] = {entity = {name = 'stone-wall'}}, [10] = {entity = {name = 'stone-wall'}}, [11] = {entity = {name = 'stone-wall'}}, - [12] = {entity = {name = 'stone-wall'}} + [12] = {entity = {name = 'stone-wall'}}, + [13] = {tile = 'stone-path'}, + [14] = {tile = 'stone-path'}, + [15] = {tile = 'stone-path'}, + [16] = {tile = 'stone-path'}, + [17] = {tile = 'stone-path'}, + [18] = {tile = 'stone-path'}, + [19] = {tile = 'concrete'}, + [20] = {tile = 'concrete'}, + [21] = {tile = 'concrete'}, + [22] = {tile = 'concrete'}, + [23] = {tile = 'concrete'}, + [24] = {tile = 'concrete'}, + [25] = {tile = 'concrete'}, + [26] = {tile = 'concrete'}, + [27] = {tile = 'concrete'}, + [28] = {tile = 'concrete'}, + [29] = {tile = 'concrete'}, + [30] = {tile = 'concrete'}, + [31] = {tile = 'stone-path'}, + [32] = {tile = 'stone-path'}, + [33] = {tile = 'stone-path'}, + [34] = {tile = 'stone-path'}, + [35] = {tile = 'stone-path'}, + [36] = {tile = 'stone-path'} }, ob.make_4_way { [1] = {entity = {name = 'stone-wall'}}, @@ -30,17 +54,65 @@ return { [12] = {entity = {name = 'stone-wall'}}, [13] = {entity = {name = 'stone-wall'}}, [14] = {entity = {name = 'stone-wall'}}, + [15] = {tile = 'stone-path'}, + [16] = {tile = 'stone-path'}, + [17] = {tile = 'stone-path'}, + [18] = {tile = 'stone-path'}, [19] = {entity = {name = 'stone-wall'}}, [20] = {entity = {name = 'stone-wall'}}, + [21] = {tile = 'stone-path'}, + [22] = {tile = 'concrete'}, + [23] = {tile = 'concrete'}, + [24] = {tile = 'concrete'}, [25] = {entity = {name = 'stone-wall'}}, [26] = {entity = {name = 'stone-wall'}}, + [27] = {tile = 'stone-path'}, + [28] = {tile = 'concrete'}, + [29] = {tile = 'concrete'}, + [30] = {tile = 'concrete'}, [31] = {entity = {name = 'stone-wall'}}, - [32] = {entity = {name = 'stone-wall'}} + [32] = {entity = {name = 'stone-wall'}}, + [33] = {tile = 'stone-path'}, + [34] = {tile = 'concrete'}, + [35] = {tile = 'concrete'}, + [36] = {tile = 'stone-path'} }, ob.make_4_way { [1] = {entity = {name = 'stone-wall'}}, [2] = {entity = {name = 'stone-wall'}}, + [3] = {tile = 'stone-path'}, + [4] = {tile = 'concrete'}, + [5] = {tile = 'concrete'}, + [6] = {tile = 'stone-path'}, [7] = {entity = {name = 'stone-wall'}}, - [8] = {entity = {name = 'stone-wall'}} + [8] = {entity = {name = 'stone-wall'}}, + [9] = {tile = 'stone-path'}, + [10] = {tile = 'concrete'}, + [11] = {tile = 'concrete'}, + [12] = {tile = 'stone-path'}, + [13] = {tile = 'stone-path'}, + [14] = {tile = 'stone-path'}, + [15] = {tile = 'stone-path'}, + [16] = {tile = 'concrete'}, + [17] = {tile = 'concrete'}, + [18] = {tile = 'stone-path'}, + [19] = {tile = 'concrete'}, + [20] = {tile = 'concrete'}, + [21] = {tile = 'concrete'}, + [22] = {tile = 'concrete'}, + [23] = {tile = 'concrete'}, + [24] = {tile = 'stone-path'}, + [25] = {tile = 'concrete'}, + [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'} } } diff --git a/map_gen/presets/crash_site/weapon_balance.lua b/map_gen/presets/crash_site/weapon_balance.lua index ebea4ff2..201e1e5f 100644 --- a/map_gen/presets/crash_site/weapon_balance.lua +++ b/map_gen/presets/crash_site/weapon_balance.lua @@ -4,7 +4,7 @@ local Event = require 'utils.event' local player_ammo_starting_modifiers = { ['artillery-shell'] = -0.75, ['biological'] = -0.5, - ['bullet'] = -0.25, + ['bullet'] = -0.35, ['cannon-shell'] = -0.75, ['capsule'] = -0.5, ['combat-robot-beam'] = -0.5, @@ -17,7 +17,7 @@ local player_ammo_starting_modifiers = { ['melee'] = 0, ['railgun'] = 0, ['rocket'] = -0.5, - ['shotgun-shell'] = -0.5 + ['shotgun-shell'] = -0.25 } local player_ammo_research_modifiers = { @@ -36,7 +36,7 @@ local player_ammo_research_modifiers = { ['melee'] = -0.5, ['railgun'] = -0.5, ['rocket'] = -0.5, - ['shotgun-shell'] = -0.5 + ['shotgun-shell'] = -0.25 } local player_turrets_research_modifiers = { diff --git a/player_list.lua b/player_list.lua index 102edd43..5979291b 100644 --- a/player_list.lua +++ b/player_list.lua @@ -55,7 +55,7 @@ local player_name_heading_name = Gui.uid_name() local time_heading_name = Gui.uid_name() local rank_heading_name = Gui.uid_name() local distance_heading_name = Gui.uid_name() -local fish_heading_name = Gui.uid_name() +local coin_heading_name = Gui.uid_name() local deaths_heading_name = Gui.uid_name() local poke_name_heading_name = Gui.uid_name() @@ -64,7 +64,7 @@ local player_name_cell_name = Gui.uid_name() local time_cell_name = Gui.uid_name() local rank_cell_name = Gui.uid_name() local distance_cell_name = Gui.uid_name() -local fish_cell_name = Gui.uid_name() +local coin_cell_name = Gui.uid_name() local deaths_cell_name = Gui.uid_name() local poke_cell_name = Gui.uid_name() @@ -283,29 +283,29 @@ local column_builders = { return label end }, - [fish_heading_name] = { + [coin_heading_name] = { create_data = function(player) local index = player.index return { - fish_earned = PlayerStats.get_fish_earned(index), - fish_spent = PlayerStats.get_fish_spent(index) + coin_earned = PlayerStats.get_coin_earned(index), + coin_spent = PlayerStats.get_coin_spent(index) } end, sort = function(a, b) - local a_fish_earned, b_fish_earned = a.fish_earned, b.fish_earned - if a_fish_earned == b_fish_earned then - return a.fish_spent < b.fish_spent + local a_coin_earned, b_coin_earned = a.coin_earned, b.coin_earned + if a_coin_earned == b_coin_earned then + return a.coin_spent < b.coin_spent else - return a_fish_earned < b_fish_earned + return a_coin_earned < b_coin_earned end end, draw_heading = function(parent) local label = parent.add { type = 'label', - name = fish_heading_name, - caption = 'Fish', - tooltip = 'Fish earned / spent.' + name = coin_heading_name, + caption = 'Coins', + tooltip = 'Coins earned / spent.' } local label_style = label.style apply_heading_style(label_style) @@ -314,9 +314,9 @@ local column_builders = { return label end, draw_cell = function(parent, cell_data) - local text = table.concat({cell_data.fish_earned, '/', cell_data.fish_spent}) + local text = table.concat({cell_data.coin_earned, '/', cell_data.coin_spent}) - local label = parent.add {type = 'label', name = fish_cell_name, caption = text} + local label = parent.add {type = 'label', name = coin_cell_name, caption = text} local label_style = label.style label_style.align = 'center' label_style.width = 80 @@ -415,7 +415,7 @@ local function get_default_player_settings() time_heading_name, rank_heading_name, distance_heading_name, - --fish_heading_name, + coin_heading_name, deaths_heading_name, poke_name_heading_name }, diff --git a/player_stats.lua b/player_stats.lua index 480b7b68..088e68c2 100644 --- a/player_stats.lua +++ b/player_stats.lua @@ -3,8 +3,8 @@ local Global = require 'utils.global' local player_last_position = {} local player_walk_distances = {} -local player_fish_earned = {} -local player_fish_spent = {} +local player_coin_earned = {} +local player_coin_spent = {} local player_deaths = {} local total_players = {0} @@ -12,16 +12,16 @@ Global.register( { player_last_position = player_last_position, player_walk_distances = player_walk_distances, - player_fish_earned = player_fish_earned, - player_fish_spent = player_fish_spent, + player_coin_earned = player_coin_earned, + player_coin_spent = player_coin_spent, player_deaths = player_deaths, total_players = total_players }, function(tbl) player_last_position = tbl.player_last_position player_walk_distances = tbl.player_walk_distances - player_fish_earned = tbl.player_fish_earned - player_fish_spent = tbl.player_fish_spent + player_coin_earned = tbl.player_coin_earned + player_coin_spent = tbl.player_coin_spent player_deaths = tbl.player_deaths total_players = tbl.total_players end @@ -32,8 +32,8 @@ local function player_created(event) player_last_position[index] = game.players[index].position player_walk_distances[index] = 0 - player_fish_earned[index] = 0 - player_fish_spent[index] = 0 + player_coin_earned[index] = 0 + player_coin_spent[index] = 0 player_deaths[index] = {causes = {}, count = 0} total_players[1] = total_players[1] + 1 end @@ -69,9 +69,9 @@ end local function picked_up_item(event) local stack = event.item_stack - if stack.name == 'raw-fish' then + if stack.name == 'coin' then local player_index = event.player_index - player_fish_earned[player_index] = player_fish_earned[player_index] + stack.count + player_coin_earned[player_index] = player_coin_earned[player_index] + stack.count end end @@ -102,28 +102,28 @@ function Public.get_walk_distance(player_index) return player_walk_distances[player_index] end -function Public.get_fish_earned(player_index) - return player_fish_earned[player_index] +function Public.get_coin_earned(player_index) + return player_coin_earned[player_index] end -function Public.set_fish_earned(player_index, value) - player_fish_earned[player_index] = value +function Public.set_coin_earned(player_index, value) + player_coin_earned[player_index] = value end -function Public.change_fish_earned(player_index, amount) - player_fish_earned[player_index] = player_fish_earned[player_index] + amount +function Public.change_coin_earned(player_index, amount) + player_coin_earned[player_index] = player_coin_earned[player_index] + amount end -function Public.get_fish_spent(player_index) - return player_fish_spent[player_index] +function Public.get_coin_spent(player_index) + return player_coin_spent[player_index] end -function Public.set_fish_spent(player_index, value) - player_fish_spent[player_index] = value +function Public.set_coin_spent(player_index, value) + player_coin_spent[player_index] = value end -function Public.change_fish_spent(player_index, amount) - player_fish_spent[player_index] = player_fish_spent[player_index] + amount +function Public.change_coin_spent(player_index, amount) + player_coin_spent[player_index] = player_coin_spent[player_index] + amount end function Public.get_death_count(player_index) diff --git a/resources/regulars.lua b/resources/regulars.lua index 3918a463..14f9d4a3 100644 --- a/resources/regulars.lua +++ b/resources/regulars.lua @@ -267,7 +267,6 @@ return { ['warnotte'] = true, ['watchinghawk'] = true, ['wekkka'] = true, - ['wesoly1234'] = true, ['wickvitaminc'] = true, ['williambellwisdo'] = true, ['wurzeltroll42'] = true, @@ -445,7 +444,6 @@ return { ['SmotPokin42000'] = true, ['Theysaywhatnow'] = true, ['SwampD0nkey'] = true, - ['BTG'] = true, ['Anubi5'] = true, ['Slas'] = true, ['McTheDerp'] = true, @@ -527,5 +525,21 @@ return { ['Cruelcoder'] = true, ['Unrealrules'] = true, ['Lithidoria'] = true, - ['LordElmi'] = true + ['LordElmi'] = true, + ['Kane.Nexus'] = true, + ['OmegaLunch'] = true, + ['korokoroneruneru'] = true, + ['Krengrus'] = true, + ['Rinncar72'] = true, + ['Patti2507'] = true, + ['f198904011'] = true, + ['BTG'] = true, + ['SwaggerC4'] = true, + ['biohaze'] = true, + ['SMikiS'] = true, + ['sejyoo'] = true, + ['Askiph'] = true, + ['undefinable'] = true, + ['snapboogie'] = true, + ['Wesoly1234'] = true }