mirror of
https://github.com/Refactorio/RedMew.git
synced 2025-03-03 14:53:01 +02:00
updates
This commit is contained in:
parent
e6a547a386
commit
c489dca223
@ -7,6 +7,8 @@ local b = require 'map_gen.shared.builders'
|
||||
local Global = require('utils.global')
|
||||
local Random = require 'map_gen.shared.random'
|
||||
local OutpostBuilder = require 'map_gen.presets.crash_site.outpost_builder'
|
||||
local Token = require 'utils.token'
|
||||
local Task = require 'utils.task'
|
||||
local math = require 'utils.math'
|
||||
local ScenarioInfo = require 'features.gui.info'
|
||||
local table = require 'utils.table'
|
||||
@ -110,6 +112,21 @@ local mini_t1_production_factory = require 'map_gen.presets.crash_site.outpost_d
|
||||
local mini_t2_energy_factory = require 'map_gen.presets.crash_site.outpost_data.mini_t2_energy_factory'
|
||||
local mini_t1_train_factory = require 'map_gen.presets.crash_site.outpost_data.mini_t1_train_factory'
|
||||
|
||||
local spawn_callback_callback =
|
||||
Token.register(
|
||||
function(outpost_id)
|
||||
OutpostBuilder.activate_market_upgrade(outpost_id)
|
||||
end
|
||||
)
|
||||
|
||||
local spawn_callback =
|
||||
Token.register(
|
||||
function(entity, data)
|
||||
Token.get(OutpostBuilder.market_set_items_callback)(entity, data)
|
||||
Task.set_timeout_in_ticks(1, spawn_callback_callback, data.outpost_id)
|
||||
end
|
||||
)
|
||||
|
||||
local function init()
|
||||
local on_init = game ~= nil
|
||||
|
||||
@ -679,9 +696,12 @@ local function init()
|
||||
map = b.apply_entity(map, ore_grid)
|
||||
|
||||
local market = {
|
||||
callback = outpost_builder.market_set_items_callback,
|
||||
callback = spawn_callback,
|
||||
data = {
|
||||
market_name = 'Spawn',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 500,
|
||||
upgrade_cost_base = 2,
|
||||
{name = 'raw-wood', price = 1},
|
||||
{name = 'iron-plate', price = 2},
|
||||
{name = 'stone', price = 2},
|
||||
@ -752,13 +772,6 @@ Global.register_init(
|
||||
end
|
||||
)
|
||||
|
||||
--[[ local Event = require 'utils.event'
|
||||
Event.add(
|
||||
defines.events.on_player_joined_game,
|
||||
function(event)
|
||||
game.players[event.player_index].character = nil
|
||||
end
|
||||
) ]]
|
||||
return function(x, y, world)
|
||||
return map(x, y, world)
|
||||
end
|
||||
|
@ -915,9 +915,9 @@ end
|
||||
local function update_market_upgrade_description(outpost_data)
|
||||
local outpost_id = outpost_data.outpost_id
|
||||
|
||||
local upgrade_rate = outpost_data.upgrade_rate or 0.2
|
||||
local upgrade_base_cost = outpost_data.upgrade_base_cost or 250
|
||||
local upgrade_cost_base = outpost_data.upgrade_cost_base or 2
|
||||
local upgrade_rate = outpost_data.upgrade_rate
|
||||
local upgrade_base_cost = outpost_data.upgrade_base_cost
|
||||
local upgrade_cost_base = outpost_data.upgrade_cost_base
|
||||
local level = outpost_data.level
|
||||
local base_outputs = outpost_data.base_outputs
|
||||
local outpost_magic_crafters = outpost_data.magic_crafters
|
||||
@ -961,7 +961,7 @@ local function do_outpost_upgrade(event)
|
||||
local outpost_data = outposts[outpost_id]
|
||||
|
||||
local outpost_magic_crafters = outpost_data.magic_crafters
|
||||
local upgrade_rate = outpost_data.upgrade_rate or 0.2
|
||||
local upgrade_rate = outpost_data.upgrade_rate
|
||||
|
||||
local level = outpost_data.level + 1
|
||||
outpost_data.level = level
|
||||
@ -983,26 +983,20 @@ local function do_outpost_upgrade(event)
|
||||
update_market_upgrade_description(outpost_data)
|
||||
end
|
||||
|
||||
local function do_capture_outpost(outpost_data)
|
||||
local area = {top_left = outpost_data.top_left, bottom_right = outpost_data.bottom_right}
|
||||
local walls = RS.get_surface().find_entities_filtered {area = area, force = 'enemy', name = 'stone-wall'}
|
||||
|
||||
for i = 1, #walls do
|
||||
walls[i].force = 'player'
|
||||
end
|
||||
|
||||
local outpost_id = outpost_data.outpost_id
|
||||
|
||||
local name = Retailer.get_market_group_label(outpost_id)
|
||||
if name == 'Market' then
|
||||
return
|
||||
else
|
||||
game.print(concat({'*** ', 'Outpost captured: ' .. name, ' ***'}), Color.lime_green)
|
||||
Server.to_discord_bold('Outpost captured: ' .. name)
|
||||
end
|
||||
|
||||
local function activate_market_upgrade(outpost_data)
|
||||
local outpost_magic_crafters = outpost_data.magic_crafters
|
||||
|
||||
if #outpost_magic_crafters == 0 then
|
||||
local outpost_id = outpost_data.outpost_id
|
||||
|
||||
local prototype = Retailer.get_items(outpost_id)['upgrade']
|
||||
prototype.disabled_reason = 'No machines to upgrade.'
|
||||
|
||||
Retailer.set_item(outpost_id, prototype)
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
local base_outputs = {}
|
||||
|
||||
for i = 1, #outpost_magic_crafters do
|
||||
@ -1020,6 +1014,32 @@ local function do_capture_outpost(outpost_data)
|
||||
update_market_upgrade_description(outpost_data)
|
||||
end
|
||||
|
||||
function Public.activate_market_upgrade(outpost_id)
|
||||
local outpost_data = outposts[outpost_id]
|
||||
activate_market_upgrade(outpost_data)
|
||||
end
|
||||
|
||||
local function do_capture_outpost(outpost_data)
|
||||
local area = {top_left = outpost_data.top_left, bottom_right = outpost_data.bottom_right}
|
||||
local walls = RS.get_surface().find_entities_filtered {area = area, force = 'enemy', name = 'stone-wall'}
|
||||
|
||||
for i = 1, #walls do
|
||||
walls[i].force = 'player'
|
||||
end
|
||||
|
||||
local outpost_id = outpost_data.outpost_id
|
||||
|
||||
local name = Retailer.get_market_group_label(outpost_id)
|
||||
if name == 'Market' then
|
||||
return
|
||||
end
|
||||
|
||||
game.print(concat({'*** ', 'Outpost captured: ' .. name, ' ***'}), Color.lime_green)
|
||||
Server.to_discord_bold('Outpost captured: ' .. name)
|
||||
|
||||
activate_market_upgrade(outpost_data)
|
||||
end
|
||||
|
||||
local function do_refill_turrets()
|
||||
local index = refill_turrets.index
|
||||
|
||||
@ -1362,11 +1382,11 @@ Public.market_set_items_callback =
|
||||
|
||||
local market_id = data.outpost_id
|
||||
local outpost_data = outposts[market_id]
|
||||
local upgrade_base_cost = data.upgrade_base_cost or 0
|
||||
local upgrade_base_cost = callback_data.upgrade_base_cost or 0
|
||||
|
||||
outpost_data.upgrade_rate = data.upgrade_rate
|
||||
outpost_data.upgrade_rate = callback_data.upgrade_rate
|
||||
outpost_data.upgrade_base_cost = upgrade_base_cost
|
||||
outpost_data.upgrade_cost_base = data.upgrade_cost_base
|
||||
outpost_data.upgrade_cost_base = callback_data.upgrade_cost_base
|
||||
|
||||
Retailer.add_market(market_id, entity)
|
||||
Retailer.set_market_group_label(market_id, callback_data.market_name)
|
||||
@ -1378,7 +1398,7 @@ Public.market_set_items_callback =
|
||||
type = 'upgrade',
|
||||
name_label = 'Upgrade Outpost',
|
||||
sprite = 'item-group/production',
|
||||
price = upgrade_base_cost,
|
||||
price = 0,
|
||||
stack_limit = 1,
|
||||
disabled = true,
|
||||
disabled_reason = 'Outpost must be captured first.',
|
||||
@ -1407,11 +1427,6 @@ Public.market_set_items_callback =
|
||||
{name = item.name, price = price, name_label = item.name_label, description = item.description}
|
||||
)
|
||||
end
|
||||
|
||||
local outpost_data = outposts[market_id]
|
||||
outpost_data.upgrade_rate = data.upgrade_rate
|
||||
outpost_data.upgrade_base_cost = data.upgrade_base_cost
|
||||
outpost_data.upgrade_cost_base = data.upgrade_cost_base
|
||||
end
|
||||
)
|
||||
|
||||
@ -1553,10 +1568,6 @@ local function coin_mined(event)
|
||||
end
|
||||
end
|
||||
|
||||
local function market_purchase(event)
|
||||
game.print(serpent.block(event))
|
||||
end
|
||||
|
||||
Event.add(defines.events.on_tick, tick)
|
||||
Event.add(defines.events.on_entity_died, turret_died)
|
||||
|
||||
|
@ -48,6 +48,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Big Ammo Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'firearm-magazine',
|
||||
price = 0.5,
|
||||
|
@ -50,6 +50,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Big Chemical Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'coal',
|
||||
price = 0.25,
|
||||
|
@ -48,6 +48,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Big Circuit Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'copper-cable',
|
||||
price = 0.25,
|
||||
|
@ -30,6 +30,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Big Copper Plate Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'copper-cable',
|
||||
price = 0.12,
|
||||
|
@ -53,6 +53,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Big Gear Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'iron-gear-wheel',
|
||||
price = 0.5,
|
||||
|
@ -48,6 +48,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Big Iron Plate Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'iron-plate',
|
||||
price = 0.3,
|
||||
|
@ -52,6 +52,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Big Oil Refinery',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'crude-oil-barrel',
|
||||
price = 10,
|
||||
|
@ -54,6 +54,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Big Power Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'coal',
|
||||
price = 0.5,
|
||||
|
@ -41,6 +41,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Big Science Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'science-pack-1',
|
||||
price = 10,
|
||||
|
@ -49,6 +49,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Big Stone Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'stone',
|
||||
price = 0.25,
|
||||
|
@ -46,6 +46,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Big Weapon Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'raw-fish',
|
||||
price = 1,
|
||||
|
@ -50,6 +50,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Medium Ammo Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'firearm-magazine',
|
||||
price = 1,
|
||||
|
@ -42,6 +42,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Medium Checmical Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'coal',
|
||||
price = 0.25,
|
||||
|
@ -31,6 +31,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Medium Circuit Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'copper-cable',
|
||||
price = 0.25,
|
||||
|
@ -30,6 +30,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Medium Copper Plate Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'copper-cable',
|
||||
price = 0.12,
|
||||
|
@ -53,6 +53,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Medium Gear Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'iron-gear-wheel',
|
||||
price = 0.5,
|
||||
|
@ -38,6 +38,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Medium Iron Plate Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'iron-plate',
|
||||
price = 0.3,
|
||||
|
@ -52,6 +52,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Medium Oil Refinery',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'crude-oil-barrel',
|
||||
price = 10,
|
||||
|
@ -43,6 +43,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Medium Power Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'coal',
|
||||
price = 0.5,
|
||||
|
@ -39,6 +39,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Medium Science Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'science-pack-1',
|
||||
price = 10,
|
||||
|
@ -40,6 +40,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Medium Stone Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'stone',
|
||||
price = 0.25,
|
||||
|
@ -59,6 +59,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Medium Weapon Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'raw-fish',
|
||||
price = 1,
|
||||
|
@ -43,6 +43,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Small Ammo Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'firearm-magazine',
|
||||
price = 1,
|
||||
|
@ -40,6 +40,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Small Chemical Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'coal',
|
||||
price = 0.25,
|
||||
|
@ -23,6 +23,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Small Circuit Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'copper-cable',
|
||||
price = 0.25,
|
||||
|
@ -30,6 +30,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Small Copper Plate Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'copper-cable',
|
||||
price = 0.12,
|
||||
|
@ -43,6 +43,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Small Gear Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'iron-gear-wheel',
|
||||
price = 0.5,
|
||||
|
@ -30,7 +30,7 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Small Iron Plate Factory',
|
||||
upgrade_rate = 0.2,
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
|
@ -52,6 +52,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Small Oil Refinery',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'crude-oil-barrel',
|
||||
price = 10,
|
||||
|
@ -42,6 +42,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Small Power Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'coal',
|
||||
price = 0.5,
|
||||
|
@ -37,6 +37,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Small Science Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'science-pack-1',
|
||||
price = 10,
|
||||
|
@ -39,6 +39,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Small Stone Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'stone',
|
||||
price = 0.25,
|
||||
|
@ -59,6 +59,9 @@ local market = {
|
||||
callback = ob.market_set_items_callback,
|
||||
data = {
|
||||
market_name = 'Small Weapon Factory',
|
||||
upgrade_rate = 0.5,
|
||||
upgrade_base_cost = 250,
|
||||
upgrade_cost_base = 2,
|
||||
{
|
||||
name = 'raw-fish',
|
||||
price = 1,
|
||||
|
Loading…
x
Reference in New Issue
Block a user