1
0
mirror of https://github.com/Refactorio/RedMew.git synced 2025-03-03 14:53:01 +02:00
This commit is contained in:
grilledham 2019-01-24 00:25:19 +00:00
parent e6a547a386
commit c489dca223
35 changed files with 164 additions and 44 deletions

View File

@ -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

View File

@ -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)

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,
{

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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,