mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-03-25 21:29:06 +02:00
remove old captain's shop code
This commit is contained in:
parent
1b9d9067dd
commit
43d981d5bd
@ -1155,8 +1155,6 @@ function Public.loading_update(tickinterval)
|
||||
|
||||
local force = memory.force
|
||||
if not (force and force.valid) then return end
|
||||
|
||||
script.raise_event(CustomEvents.enum['update_crew_fuel_gui'], {})
|
||||
else
|
||||
PiratesApiEvents.load_some_map_chunks_random_order(surface, currentdestination, fraction) --random order is good for maze world
|
||||
if currentdestination.subtype == IslandEnum.enum.CAVE then
|
||||
|
@ -21,7 +21,7 @@ local Islands = require 'maps.pirates.surfaces.islands.islands'
|
||||
local Progression = require 'maps.pirates.progression'
|
||||
local Crowsnest = require 'maps.pirates.surfaces.crowsnest'
|
||||
local PiratesApiEvents = require 'maps.pirates.api_events'
|
||||
local Upgrades = require 'maps.pirates.boat_upgrades'
|
||||
local Upgrades = require 'maps.pirates.shop.boat_upgrades'
|
||||
local Effects = require 'maps.pirates.effects'
|
||||
local Kraken = require 'maps.pirates.surfaces.sea.kraken'
|
||||
local _inspect = require 'utils.inspect'.inspect
|
||||
|
@ -9,7 +9,6 @@ local Public = {}
|
||||
|
||||
local enum = {
|
||||
update_crew_progress_gui = Event.generate_event_name('update_crew_progress_gui'),
|
||||
update_crew_fuel_gui = Event.generate_event_name('update_crew_fuel_gui'),
|
||||
}
|
||||
Public.enum = enum
|
||||
|
||||
|
@ -156,94 +156,6 @@ function Public.flow_add_floating_button(flow1, button_name)
|
||||
return flow3
|
||||
end
|
||||
|
||||
function Public.flow_add_shop_item(flow, name)
|
||||
local flow2, flow3
|
||||
|
||||
local shop_data_1 = Shop.Captains.main_shop_data_1
|
||||
local shop_data_2 = Shop.Captains.main_shop_data_2
|
||||
local trade_data = shop_data_1[name] or shop_data_2[name]
|
||||
if not trade_data then return end
|
||||
|
||||
flow2 = flow.add({
|
||||
name = name,
|
||||
type = 'flow',
|
||||
direction = 'horizontal',
|
||||
})
|
||||
flow2.style.top_margin = 3
|
||||
flow2.style.horizontal_align = 'center'
|
||||
flow2.style.vertical_align = 'center'
|
||||
flow2.tooltip = trade_data.tooltip
|
||||
|
||||
|
||||
for k, v in pairs(trade_data.what_you_get_sprite_buttons) do
|
||||
flow3 = flow2.add({
|
||||
type = 'sprite-button',
|
||||
name = k,
|
||||
sprite = k,
|
||||
enabled = false,
|
||||
})
|
||||
flow3.style.minimal_height = 40
|
||||
flow3.style.maximal_height = 40
|
||||
if v == false then
|
||||
flow3.number = nil
|
||||
else
|
||||
flow3.number = v
|
||||
end
|
||||
flow3.tooltip = trade_data.tooltip
|
||||
end
|
||||
|
||||
flow3 = flow2.add({
|
||||
type = 'label',
|
||||
name = 'for',
|
||||
caption = 'for'
|
||||
})
|
||||
flow3.style.font = 'default-large'
|
||||
flow3.style.font_color = Public.default_font_color
|
||||
flow3.tooltip = trade_data.tooltip
|
||||
|
||||
for k, _ in pairs(trade_data.base_cost) do
|
||||
flow3 = flow2.add({
|
||||
name = 'cost_' .. k,
|
||||
type = 'sprite-button',
|
||||
enabled = false,
|
||||
})
|
||||
flow3.style.minimal_height = 40
|
||||
flow3.style.maximal_height = 40
|
||||
flow3.tooltip = trade_data.tooltip
|
||||
if k == 'fuel' then
|
||||
flow3.sprite = 'item/coal'
|
||||
elseif k == 'coins' then
|
||||
flow3.sprite = 'item/coin'
|
||||
elseif k == 'iron_plates' then
|
||||
flow3.sprite = 'item/iron-plate'
|
||||
elseif k == 'copper_plates' then
|
||||
flow3.sprite = 'item/copper-plate'
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
flow3 = flow2.add({
|
||||
name = 'spacing',
|
||||
type = 'flow',
|
||||
direction = 'horizontal',
|
||||
})
|
||||
flow3.style.horizontally_stretchable = true
|
||||
|
||||
flow3 = flow2.add({
|
||||
type = 'sprite-button',
|
||||
name = 'buy_button',
|
||||
caption = 'Buy'
|
||||
})
|
||||
flow3.style.font = 'default-large'
|
||||
flow3.style.font_color = Public.default_font_color
|
||||
flow3.style.height = 32
|
||||
flow3.style.width = 50
|
||||
flow3.style.padding = 0
|
||||
flow3.style.margin = 0
|
||||
|
||||
return flow2
|
||||
end
|
||||
|
||||
function Public.flow_add_section(flow, name, caption)
|
||||
local flow2, flow3
|
||||
|
||||
|
@ -1,194 +0,0 @@
|
||||
-- This file is part of thesixthroc's Pirate Ship softmod, licensed under GPLv3 and stored at https://github.com/ComfyFactory/ComfyFactorio and https://github.com/danielmartin0/ComfyFactorio-Pirates.
|
||||
|
||||
|
||||
local Memory = require 'maps.pirates.memory'
|
||||
-- local Common = require 'maps.pirates.common'
|
||||
-- local CoreData = require 'maps.pirates.coredata'
|
||||
local Utils = require 'maps.pirates.utils_local'
|
||||
-- local Math = require 'maps.pirates.math'
|
||||
local Balance = require 'maps.pirates.balance'
|
||||
-- local Surfaces = require 'maps.pirates.surfaces.surfaces'
|
||||
local Roles = require 'maps.pirates.roles.roles'
|
||||
local Crew = require 'maps.pirates.crew'
|
||||
local Shop = require 'maps.pirates.shop.shop'
|
||||
-- local Progression = require 'maps.pirates.progression'
|
||||
-- local Structures = require 'maps.pirates.structures.structures'
|
||||
local _inspect = require 'utils.inspect'.inspect
|
||||
-- local Boats = require 'maps.pirates.structures.boats.boats'
|
||||
local GuiCommon = require 'maps.pirates.gui.common'
|
||||
local Public = {}
|
||||
|
||||
local window_name = 'fuel'
|
||||
|
||||
function Public.toggle_window(player)
|
||||
local flow, flow2, flow3
|
||||
|
||||
local shop_data_1 = Shop.Captains.main_shop_data_1
|
||||
local shop_data_2 = Shop.Captains.main_shop_data_2
|
||||
|
||||
if player.gui.screen[window_name .. '_piratewindow'] then
|
||||
player.gui.screen[window_name .. '_piratewindow'].destroy()
|
||||
return
|
||||
end
|
||||
|
||||
flow = GuiCommon.new_window(player, window_name)
|
||||
flow.caption = 'Captain\'s Store'
|
||||
|
||||
|
||||
flow2 = flow.add({
|
||||
name = 'trades',
|
||||
type = 'flow',
|
||||
direction = 'vertical',
|
||||
})
|
||||
flow2.style.top_margin = 3
|
||||
flow2.style.bottom_margin = 3
|
||||
flow2.style.horizontal_align = 'center'
|
||||
flow2.style.vertical_align = 'center'
|
||||
|
||||
for k, _ in pairs(shop_data_1) do
|
||||
GuiCommon.flow_add_shop_item(flow2, k)
|
||||
end
|
||||
|
||||
flow3 = flow2.add({
|
||||
name = 'line_1',
|
||||
type = 'line',
|
||||
})
|
||||
flow3.style.width = 100
|
||||
|
||||
for k, _ in pairs(shop_data_2) do
|
||||
GuiCommon.flow_add_shop_item(flow2, k)
|
||||
end
|
||||
|
||||
|
||||
flow2 = GuiCommon.flow_add_close_button(flow, window_name .. '_piratebutton')
|
||||
|
||||
flow2.add({
|
||||
name = 'tospend',
|
||||
type = 'sprite-button',
|
||||
sprite = 'item/coin',
|
||||
index = 1,
|
||||
enabled = false,
|
||||
})
|
||||
end
|
||||
|
||||
function Public.regular_update(player)
|
||||
local flow
|
||||
|
||||
-- local memory = Memory.get_crew_memory()
|
||||
|
||||
if not player.gui.screen[window_name .. '_piratewindow'] then return end
|
||||
flow = player.gui.screen[window_name .. '_piratewindow']
|
||||
|
||||
if Roles.player_privilege_level(player) >= Roles.privilege_levels.OFFICER then
|
||||
flow.close_button_flow.hflow.tospend.visible = true
|
||||
|
||||
local inv = player.get_inventory(defines.inventory.character_main)
|
||||
if inv and inv.valid then
|
||||
local coin_amount = inv.get_item_count('coin') or 0
|
||||
|
||||
flow.close_button_flow.hflow.tospend.number = coin_amount
|
||||
flow.close_button_flow.hflow.tospend.tooltip = string.format("You're holding " .. Utils.bignumber_abbrevform2(coin_amount) .. " doubloons.")
|
||||
end
|
||||
else
|
||||
flow.close_button_flow.hflow.tospend.visible = false
|
||||
end
|
||||
end
|
||||
|
||||
function Public.full_update(player)
|
||||
if Public.regular_update then Public.regular_update(player) end
|
||||
|
||||
local flow
|
||||
|
||||
|
||||
local memory = Memory.get_crew_memory()
|
||||
local shop_data = Utils.nonrepeating_join_dict(Shop.Captains.main_shop_data_1, Shop.Captains.main_shop_data_2)
|
||||
local shop_data_1 = Shop.Captains.main_shop_data_1
|
||||
local shop_data_2 = Shop.Captains.main_shop_data_2
|
||||
|
||||
local availability_data = memory.mainshop_availability_bools
|
||||
|
||||
if not player.gui.screen[window_name .. '_piratewindow'] then return end
|
||||
flow = player.gui.screen[window_name .. '_piratewindow']
|
||||
|
||||
|
||||
--*** WHAT TO SHOW ***--
|
||||
|
||||
-- if memory.stored_fuel then
|
||||
-- flow.close_button_flow.hflow.tospend.number = memory.stored_fuel
|
||||
-- flow.close_button_flow.hflow.tospend.tooltip = string.format('The crew has %01d stored coal.', memory.stored_fuel)
|
||||
-- else
|
||||
-- flow.close_button_flow.hflow.tospend.number = 0
|
||||
-- flow.close_button_flow.hflow.tospend.tooltip = string.format('The crew has %01d stored coal.', 0)
|
||||
-- end
|
||||
|
||||
|
||||
|
||||
if memory.crewstatus == Crew.enum.ADVENTURING then
|
||||
flow.trades.visible = true
|
||||
else
|
||||
flow.trades.visible = false
|
||||
end
|
||||
|
||||
local anything_in_shop_1 = false
|
||||
for k, _ in pairs(shop_data_1) do
|
||||
if availability_data and availability_data[k] == true then
|
||||
flow.trades[k].visible = true
|
||||
anything_in_shop_1 = true
|
||||
if Roles.player_privilege_level(player) >= Roles.privilege_levels.OFFICER then
|
||||
flow.trades[k].buy_button.visible = true
|
||||
else
|
||||
flow.trades[k].buy_button.visible = false
|
||||
end
|
||||
else
|
||||
flow.trades[k].visible = false
|
||||
end
|
||||
end
|
||||
flow.trades.line_1.visible = anything_in_shop_1
|
||||
for k, _ in pairs(shop_data_2) do
|
||||
if availability_data and availability_data[k] == true then
|
||||
flow.trades[k].visible = true
|
||||
if Roles.player_privilege_level(player) >= Roles.privilege_levels.OFFICER then
|
||||
flow.trades[k].buy_button.visible = true
|
||||
else
|
||||
flow.trades[k].buy_button.visible = false
|
||||
end
|
||||
else
|
||||
flow.trades[k].visible = false
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--*** UPDATE CONTENT ***--
|
||||
|
||||
local multiplier = Balance.main_shop_cost_multiplier()
|
||||
|
||||
for k, v in pairs(shop_data) do
|
||||
for k2, v2 in pairs(v.base_cost) do
|
||||
if v2 == false then
|
||||
flow.trades[k]['cost_' .. k2].number = nil
|
||||
else
|
||||
flow.trades[k]['cost_' .. k2].number = multiplier * v2
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function Public.click(event)
|
||||
if not event.element then return end
|
||||
if not event.element.valid then return end
|
||||
|
||||
local player = game.players[event.element.player_index]
|
||||
|
||||
local eventname = event.element.name
|
||||
|
||||
if not player.gui.screen[window_name .. '_piratewindow'] then return end
|
||||
-- local flow = player.gui.screen[window_name .. '_piratewindow']
|
||||
|
||||
-- local memory = Memory.get_crew_memory()
|
||||
|
||||
if eventname == 'buy_button' then
|
||||
Shop.Captains.main_shop_try_purchase(player, event.element.parent.name)
|
||||
end
|
||||
end
|
||||
|
||||
return Public
|
@ -10,7 +10,6 @@ local GuiProgress = require 'maps.pirates.gui.progress'
|
||||
local GuiRuns = require 'maps.pirates.gui.runs'
|
||||
local GuiCrew = require 'maps.pirates.gui.crew'
|
||||
local GuiClasses = require 'maps.pirates.gui.classes'
|
||||
local GuiFuel = require 'maps.pirates.gui.fuel'
|
||||
local GuiMinimap = require 'maps.pirates.gui.minimap'
|
||||
local GuiInfo = require 'maps.pirates.gui.info'
|
||||
local Quest = require 'maps.pirates.quest'
|
||||
@ -42,7 +41,6 @@ local enum = {
|
||||
RUNS = 'runs',
|
||||
CREW = 'crew',
|
||||
CLASSES = 'classes',
|
||||
FUEL = 'fuel',
|
||||
MINIMAP = 'minimap',
|
||||
INFO = 'info',
|
||||
COLOR = 'color',
|
||||
@ -52,7 +50,6 @@ Public.progress = require 'maps.pirates.gui.progress'
|
||||
Public.runs = require 'maps.pirates.gui.runs'
|
||||
Public.crew = require 'maps.pirates.gui.crew'
|
||||
Public.classes = require 'maps.pirates.gui.classes'
|
||||
Public.fuel = require 'maps.pirates.gui.fuel'
|
||||
Public.minimap = require 'maps.pirates.gui.minimap'
|
||||
Public.info = require 'maps.pirates.gui.info'
|
||||
Public.color = require 'maps.pirates.gui.color'
|
||||
@ -71,13 +68,8 @@ end
|
||||
function Public.update_crew_progress_gui()
|
||||
return Public.update_crew_gui('progress')
|
||||
end
|
||||
Event.add(CustomEvents.enum['update_crew_progress_gui'], Public.update_crew_progress_gui)
|
||||
-- script.raise_event(CustomEvents.enum['update_crew_progress_gui'], {})
|
||||
function Public.update_crew_fuel_gui()
|
||||
return Public.update_crew_gui('fuel')
|
||||
end
|
||||
Event.add(CustomEvents.enum['update_crew_fuel_gui'], Public.update_crew_fuel_gui)
|
||||
|
||||
Event.add(CustomEvents.enum['update_crew_progress_gui'], Public.update_crew_progress_gui)
|
||||
|
||||
local function create_gui(player)
|
||||
local flow1, flow2, flow3, flow4
|
||||
@ -87,19 +79,19 @@ local function create_gui(player)
|
||||
flow2 = GuiCommon.flow_add_floating_sprite_button(flow1, 'info_piratebutton')
|
||||
flow2.caption = '?'
|
||||
flow2.style.font = 'debug'
|
||||
flow2.tooltip = {'pirates.gui_info_main_tooltip'}
|
||||
flow2.style.font_color = {r=1, g=1, b=1}
|
||||
flow2.style.hovered_font_color = {r=1, g=1, b=1}
|
||||
flow2.style.clicked_font_color = {r=1, g=1, b=1}
|
||||
flow2.tooltip = { 'pirates.gui_info_main_tooltip' }
|
||||
flow2.style.font_color = { r = 1, g = 1, b = 1 }
|
||||
flow2.style.hovered_font_color = { r = 1, g = 1, b = 1 }
|
||||
flow2.style.clicked_font_color = { r = 1, g = 1, b = 1 }
|
||||
flow2.parent.style.left_padding = -6
|
||||
|
||||
flow2 = GuiCommon.flow_add_floating_sprite_button(flow1, 'runs_piratebutton', 70)
|
||||
flow2.caption = {'pirates.gui_crews'}
|
||||
flow2.tooltip = {'pirates.gui_crews_main_tooltip'}
|
||||
flow2.caption = { 'pirates.gui_crews' }
|
||||
flow2.tooltip = { 'pirates.gui_crews_main_tooltip' }
|
||||
flow2.style.font = 'debug'
|
||||
flow2.style.font_color = {r=1, g=1, b=1}
|
||||
flow2.style.hovered_font_color = {r=1, g=1, b=1}
|
||||
flow2.style.clicked_font_color = {r=1, g=1, b=1}
|
||||
flow2.style.font_color = { r = 1, g = 1, b = 1 }
|
||||
flow2.style.hovered_font_color = { r = 1, g = 1, b = 1 }
|
||||
flow2.style.clicked_font_color = { r = 1, g = 1, b = 1 }
|
||||
flow2.parent.style.width = 67
|
||||
flow2.parent.style.left_padding = -6
|
||||
|
||||
@ -131,11 +123,11 @@ local function create_gui(player)
|
||||
|
||||
flow2 = GuiCommon.flow_add_floating_sprite_button(flow1, 'evo_piratebutton')
|
||||
flow2.sprite = 'entity/small-biter'
|
||||
flow2.mouse_button_filter = {'middle'} --hack to avoid press visual
|
||||
flow2.mouse_button_filter = { 'middle' } --hack to avoid press visual
|
||||
flow2.show_percent_for_small_numbers = true --as of factorio v1.1.59, there is a bug in which 1.002 displays as like 1e-2% or something. but after 1.01 it's ok
|
||||
|
||||
flow2 = GuiCommon.flow_add_floating_sprite_button(flow1, 'minimap_piratebutton')
|
||||
flow2.tooltip = {'pirates.gui_minimap_main_tooltip'}
|
||||
flow2.tooltip = { 'pirates.gui_minimap_main_tooltip' }
|
||||
flow2.sprite = 'utility/map'
|
||||
|
||||
-- flow2 = GuiCommon.flow_add_floating_sprite_button(flow1, 'shop_piratebutton')
|
||||
@ -167,7 +159,7 @@ local function create_gui(player)
|
||||
})
|
||||
flow3.style.font = 'default-large-semibold'
|
||||
flow3.style.font_color = GuiCommon.bold_font_color
|
||||
flow3.caption = {'pirates.gui_fuel_1'}
|
||||
flow3.caption = { 'pirates.gui_fuel_1' }
|
||||
|
||||
flow3 = flow2.add({
|
||||
name = 'fuel_label_1',
|
||||
@ -222,9 +214,9 @@ local function create_gui(player)
|
||||
flow3.style.font = 'default-large-semibold'
|
||||
flow3.style.font_color = GuiCommon.bold_font_color
|
||||
|
||||
flow3 = flow2.add({type = 'table', name = 'cost_table', column_count = #CoreData.cost_items})
|
||||
flow3 = flow2.add({ type = 'table', name = 'cost_table', column_count = #CoreData.cost_items })
|
||||
for i = 1, #CoreData.cost_items do
|
||||
flow4 = flow3.add({type = 'sprite-button', name = 'cost_' .. i, number = 0})
|
||||
flow4 = flow3.add({ type = 'sprite-button', name = 'cost_' .. i, number = 0 })
|
||||
-- flow4.mouse_button_filter = {'middle'}
|
||||
flow4.sprite = CoreData.cost_items[i].sprite_name
|
||||
flow4.enabled = false
|
||||
@ -234,14 +226,14 @@ local function create_gui(player)
|
||||
flow4.visible = false
|
||||
end
|
||||
-- and
|
||||
flow4 = flow3.add({type = 'sprite-button', name = 'cost_launch_rocket'})
|
||||
-- flow4.mouse_button_filter = {'middle'}
|
||||
flow4.sprite = 'item/rocket-silo'
|
||||
flow4.enabled = false
|
||||
flow4.style.top_margin = -6
|
||||
flow4.style.right_margin = -6
|
||||
flow4.style.maximal_height = 38
|
||||
flow4.visible = false
|
||||
flow4 = flow3.add({ type = 'sprite-button', name = 'cost_launch_rocket' })
|
||||
-- flow4.mouse_button_filter = {'middle'}
|
||||
flow4.sprite = 'item/rocket-silo'
|
||||
flow4.enabled = false
|
||||
flow4.style.top_margin = -6
|
||||
flow4.style.right_margin = -6
|
||||
flow4.style.maximal_height = 38
|
||||
flow4.visible = false
|
||||
|
||||
flow3.style.left_margin = -1
|
||||
flow3.style.right_margin = -2 --to get to the end of the button frame
|
||||
@ -485,13 +477,13 @@ local function create_gui(player)
|
||||
|
||||
-- spontaneous inside view of the hold:
|
||||
flow1 =
|
||||
player.gui.screen.add(
|
||||
{
|
||||
type = 'camera',
|
||||
name = 'pirates_spontaneous_camera',
|
||||
position = {x=0,y=0},
|
||||
}
|
||||
)
|
||||
player.gui.screen.add(
|
||||
{
|
||||
type = 'camera',
|
||||
name = 'pirates_spontaneous_camera',
|
||||
position = { x = 0, y = 0 },
|
||||
}
|
||||
)
|
||||
flow1.visible = false
|
||||
flow1.style.margin = 8
|
||||
-- flow2.style.minimal_height = 64
|
||||
@ -546,34 +538,32 @@ function Public.process_etaframe_update(player, flow1, bools)
|
||||
flow2.etaframe_label_1.visible = true
|
||||
flow2.etaframe_label_2.visible = false
|
||||
|
||||
tooltip = {'pirates.gui_etaframe_board_warning_tooltip'}
|
||||
|
||||
flow2.etaframe_label_1.caption = {'pirates.gui_etaframe_board_warning'}
|
||||
tooltip = { 'pirates.gui_etaframe_board_warning_tooltip' }
|
||||
|
||||
flow2.etaframe_label_1.caption = { 'pirates.gui_etaframe_board_warning' }
|
||||
elseif bools.eta_bool then
|
||||
flow2.etaframe_label_1.visible = true
|
||||
flow2.etaframe_label_2.visible = true
|
||||
|
||||
tooltip = {'pirates.auto_undock_tooltip'}
|
||||
tooltip = { 'pirates.auto_undock_tooltip' }
|
||||
|
||||
local passive_eta = dynamic_data.time_remaining
|
||||
|
||||
flow2.etaframe_label_1.caption = {'pirates.gui_etaframe_autoundock'}
|
||||
flow2.etaframe_label_1.caption = { 'pirates.gui_etaframe_autoundock' }
|
||||
flow2.etaframe_label_2.caption = Utils.standard_string_form_of_time_in_seconds(passive_eta)
|
||||
|
||||
elseif bools.atsea_loading_bool then
|
||||
if Kraken.get_active_kraken_count(memory.id) > 0 then
|
||||
flow2.etaframe_label_1.visible = true
|
||||
flow2.etaframe_label_2.visible = false
|
||||
|
||||
tooltip = {'pirates.defeat_krakens_tooltip'}
|
||||
tooltip = { 'pirates.defeat_krakens_tooltip' }
|
||||
|
||||
flow2.etaframe_label_1.caption = {'pirates.gui_etaframe_defeat_krakens'}
|
||||
flow2.etaframe_label_1.caption = { 'pirates.gui_etaframe_defeat_krakens' }
|
||||
else
|
||||
flow2.etaframe_label_1.visible = true
|
||||
flow2.etaframe_label_2.visible = true
|
||||
|
||||
tooltip = {'pirates.atsea_loading_tooltip'}
|
||||
tooltip = { 'pirates.atsea_loading_tooltip' }
|
||||
|
||||
local total = Common.map_loading_ticks_atsea
|
||||
if destination.type == Surfaces.enum.DOCK then
|
||||
@ -584,34 +574,31 @@ function Public.process_etaframe_update(player, flow1, bools)
|
||||
|
||||
local eta_ticks = total + (memory.extra_time_at_sea or 0) - memory.loadingticks
|
||||
|
||||
flow2.etaframe_label_1.caption = {'pirates.gui_etaframe_loading_for'}
|
||||
flow2.etaframe_label_1.caption = { 'pirates.gui_etaframe_loading_for' }
|
||||
flow2.etaframe_label_2.caption = Utils.standard_string_form_of_time_in_seconds(eta_ticks / 60)
|
||||
end
|
||||
|
||||
elseif bools.atsea_waiting_bool then
|
||||
flow2.etaframe_label_1.visible = true
|
||||
flow2.etaframe_label_2.visible = false
|
||||
|
||||
tooltip = {'pirates.atsea_waiting_tooltip'}
|
||||
|
||||
flow2.etaframe_label_1.caption = {'pirates.gui_etaframe_atsea_waiting'}
|
||||
tooltip = { 'pirates.atsea_waiting_tooltip' }
|
||||
|
||||
flow2.etaframe_label_1.caption = { 'pirates.gui_etaframe_atsea_waiting' }
|
||||
elseif bools.atsea_victorious_bool then
|
||||
flow2.etaframe_label_1.visible = true
|
||||
flow2.etaframe_label_2.visible = false
|
||||
|
||||
tooltip = {'pirates.atsea_victorious_tooltip'}
|
||||
|
||||
flow2.etaframe_label_1.caption = {'pirates.gui_etaframe_atsea_victorious'}
|
||||
tooltip = { 'pirates.atsea_victorious_tooltip' }
|
||||
|
||||
flow2.etaframe_label_1.caption = { 'pirates.gui_etaframe_atsea_victorious' }
|
||||
elseif bools.leave_anytime_bool then
|
||||
flow2.etaframe_label_1.visible = true
|
||||
flow2.etaframe_label_2.visible = true
|
||||
|
||||
tooltip = {'pirates.leave_anytime_tooltip'}
|
||||
tooltip = { 'pirates.leave_anytime_tooltip' }
|
||||
|
||||
flow2.etaframe_label_1.caption = {'pirates.gui_etaframe_undock'}
|
||||
flow2.etaframe_label_2.caption = {'pirates.gui_etaframe_anytime'}
|
||||
flow2.etaframe_label_1.caption = { 'pirates.gui_etaframe_undock' }
|
||||
flow2.etaframe_label_2.caption = { 'pirates.gui_etaframe_anytime' }
|
||||
end
|
||||
|
||||
if bools.cost_bool and Kraken.get_active_kraken_count(memory.id) == 0 then
|
||||
@ -624,65 +611,65 @@ function Public.process_etaframe_update(player, flow1, bools)
|
||||
cost_table.visible = true
|
||||
|
||||
if flow2.etaframe_label_2.visible then
|
||||
flow2.etaframe_label_2.caption = flow2.etaframe_label_2.caption .. '.'
|
||||
flow2.etaframe_label_2.caption = flow2.etaframe_label_2.caption .. '.'
|
||||
end
|
||||
|
||||
-- local caption
|
||||
if bools.atsea_loading_bool then
|
||||
flow2.etaframe_label_3.caption = {'pirates.gui_etaframe_next_escape_cost'}
|
||||
flow2.etaframe_label_3.caption = { 'pirates.gui_etaframe_next_escape_cost' }
|
||||
if Boats.need_resources_to_undock(Common.overworldx(), destination.subtype) then
|
||||
if bools.cost_includes_rocket_launch_bool then
|
||||
tooltip = {'pirates.resources_needed_tooltip_4_rocketvariant'}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_4_rocketvariant' }
|
||||
else
|
||||
tooltip = {'pirates.resources_needed_tooltip_4'}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_4' }
|
||||
end
|
||||
elseif destination.static_params.undock_cost_decreases == true then
|
||||
if bools.cost_includes_rocket_launch_bool then
|
||||
tooltip = {'pirates.resources_needed_tooltip_1_rocketvariant'}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_1_rocketvariant' }
|
||||
else
|
||||
tooltip = {'pirates.resources_needed_tooltip_1'}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_1' }
|
||||
end
|
||||
else
|
||||
if bools.cost_includes_rocket_launch_bool then
|
||||
tooltip = {'pirates.resources_needed_tooltip_0a_rocketvariant'}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_0a_rocketvariant' }
|
||||
else
|
||||
tooltip = {'pirates.resources_needed_tooltip_0a'}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_0a' }
|
||||
end
|
||||
end
|
||||
elseif (not bools.eta_bool) then -- Shown when ship doesn't have auto undock timer
|
||||
flow2.etaframe_label_3.visible = false
|
||||
flow2.etaframe_label_1.visible = true
|
||||
flow2.etaframe_label_1.caption = {'pirates.gui_etaframe_to_escape_store'}
|
||||
flow2.etaframe_label_1.caption = { 'pirates.gui_etaframe_to_escape_store' }
|
||||
|
||||
if bools.cost_includes_rocket_launch_bool then
|
||||
tooltip = {'pirates.resources_needed_tooltip_3_rocketvariant'}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_3_rocketvariant' }
|
||||
else
|
||||
tooltip = {'pirates.resources_needed_tooltip_3'}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_3' }
|
||||
end
|
||||
else -- Shown when at island
|
||||
if Boats.need_resources_to_undock(Common.overworldx(), destination.subtype) then
|
||||
flow2.etaframe_label_3.visible = false
|
||||
|
||||
if bools.cost_includes_rocket_launch_bool then
|
||||
tooltip = {'pirates.resources_needed_tooltip_5_rocketvariant'}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_5_rocketvariant' }
|
||||
else
|
||||
tooltip = {'pirates.resources_needed_tooltip_5'}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_5' }
|
||||
end
|
||||
elseif destination.static_params.undock_cost_decreases == true then
|
||||
flow2.etaframe_label_3.caption = {'pirates.gui_etaframe_or_store'}
|
||||
flow2.etaframe_label_3.caption = { 'pirates.gui_etaframe_or_store' }
|
||||
|
||||
local adjusted_costs_resources_strings = Common.time_adjusted_departure_cost_resources_strings(memory)
|
||||
if bools.cost_includes_rocket_launch_bool then
|
||||
tooltip = {'pirates.resources_needed_tooltip_2_rocketvariant', adjusted_costs_resources_strings[1], adjusted_costs_resources_strings[2]}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_2_rocketvariant', adjusted_costs_resources_strings[1], adjusted_costs_resources_strings[2] }
|
||||
else
|
||||
--@Future reference: localisation handling
|
||||
tooltip = {'pirates.resources_needed_tooltip_2', adjusted_costs_resources_strings[1], adjusted_costs_resources_strings[2]}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_2', adjusted_costs_resources_strings[1], adjusted_costs_resources_strings[2] }
|
||||
end
|
||||
else
|
||||
if bools.cost_includes_rocket_launch_bool then
|
||||
tooltip = {'pirates.resources_needed_tooltip_3_rocketvariant'}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_3_rocketvariant' }
|
||||
else
|
||||
tooltip = {'pirates.resources_needed_tooltip_3'}
|
||||
tooltip = { 'pirates.resources_needed_tooltip_3' }
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -710,7 +697,7 @@ function Public.process_etaframe_update(player, flow1, bools)
|
||||
else
|
||||
cost_table['cost_launch_rocket'].number = 0
|
||||
end
|
||||
cost_table['cost_launch_rocket'].tooltip = {'pirates.gui_etaframe_rocket_requirement_tooltip'}
|
||||
cost_table['cost_launch_rocket'].tooltip = { 'pirates.gui_etaframe_rocket_requirement_tooltip' }
|
||||
cost_table['cost_launch_rocket'].visible = true
|
||||
else
|
||||
cost_table['cost_launch_rocket'].visible = false
|
||||
@ -721,24 +708,22 @@ function Public.process_etaframe_update(player, flow1, bools)
|
||||
flow2.tooltip = tooltip
|
||||
|
||||
if bools.captain_bool and (not bools.retreating_bool) and (bools.leave_anytime_bool or bools.atsea_waiting_bool or bools.eta_bool or (bools.cost_bool and (not bools.atsea_loading_bool))) then
|
||||
flow1.etaframe_piratebutton.mouse_button_filter = {'left'}
|
||||
flow1.etaframe_piratebutton.mouse_button_filter = { 'left' }
|
||||
if memory.undock_shortcut_are_you_sure_data and memory.undock_shortcut_are_you_sure_data[player.index] and memory.undock_shortcut_are_you_sure_data[player.index] > game.tick - 60 * 4 then
|
||||
flow2.etaframe_label_1.visible = true
|
||||
flow2.etaframe_label_1.caption = {'pirates.gui_etaframe_undock_are_you_sure'}
|
||||
flow2.etaframe_label_1.caption = { 'pirates.gui_etaframe_undock_are_you_sure' }
|
||||
flow2.etaframe_label_2.visible = false
|
||||
flow2.etaframe_label_3.visible = false
|
||||
end
|
||||
else
|
||||
flow1.etaframe_piratebutton.mouse_button_filter = {'middle'} --hack to avoid press visual
|
||||
flow1.etaframe_piratebutton.mouse_button_filter = { 'middle' } --hack to avoid press visual
|
||||
end
|
||||
else
|
||||
flow1.visible = false
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function Public.process_siloframe_and_questframe_updates(flowsilo, flowquest, bools)
|
||||
|
||||
local destination = Common.current_destination()
|
||||
local dynamic_data = destination.dynamic_data --assumes this always exists
|
||||
|
||||
@ -747,40 +732,37 @@ function Public.process_siloframe_and_questframe_updates(flowsilo, flowquest, bo
|
||||
|
||||
flow1 = flowsilo
|
||||
if flow1 then
|
||||
|
||||
if bools.silo_bool then
|
||||
flow1.visible = true
|
||||
|
||||
if bools.charged_bool then
|
||||
|
||||
if bools.launched_bool then
|
||||
|
||||
flow1.silo_progressbar.visible = false
|
||||
|
||||
flow1.silo_label_2.visible = false
|
||||
flow1.silo_label_3.visible = true
|
||||
|
||||
-- flow1.silo_label_1.caption = string.format('[achievement=there-is-no-spoon]: +%.0f[item=sulfur]', dynamic_data.rocketcoalreward)
|
||||
flow1.silo_label_1.caption = {'pirates.gui_etaframe_launched'}
|
||||
flow1.silo_label_1.caption = { 'pirates.gui_etaframe_launched' }
|
||||
-- flow1.silo_label_1.caption = string.format('Launched for %.0f[item=coal] , ' .. Balance.rocket_launch_coin_reward .. '[item=coin]', dynamic_data.rocketcoalreward)
|
||||
flow1.silo_label_1.style.font_color = GuiCommon.achieved_font_color
|
||||
|
||||
local rocket_launch_coal_reward = Balance.rocket_launch_fuel_reward()
|
||||
local rocket_launch_coin_reward = Balance.rocket_launch_coin_reward()
|
||||
|
||||
flow1.silo_label_3.caption = Math.floor(rocket_launch_coal_reward/100)/10 .. 'k[item=coal], ' .. Math.floor(rocket_launch_coin_reward/100)/10 .. 'k[item=coin]'
|
||||
flow1.silo_label_3.caption = Math.floor(rocket_launch_coal_reward / 100) / 10 .. 'k[item=coal], ' .. Math.floor(rocket_launch_coin_reward / 100) / 10 .. 'k[item=coin]'
|
||||
|
||||
local tooltip = {'pirates.gui_etaframe_launched_tooltip'}
|
||||
local tooltip = { 'pirates.gui_etaframe_launched_tooltip' }
|
||||
flow1.tooltip = tooltip
|
||||
flow1.silo_label_1.tooltip = tooltip
|
||||
flow1.silo_label_3.tooltip = tooltip
|
||||
else
|
||||
local tooltip = {'pirates.gui_etaframe_launching'}
|
||||
local tooltip = { 'pirates.gui_etaframe_launching' }
|
||||
flow1.tooltip = tooltip
|
||||
flow1.silo_label_1.tooltip = tooltip
|
||||
flow1.silo_progressbar.tooltip = tooltip
|
||||
|
||||
flow1.silo_label_1.caption = {'pirates.gui_etaframe_charge'}
|
||||
flow1.silo_label_1.caption = { 'pirates.gui_etaframe_charge' }
|
||||
flow1.silo_label_1.style.font_color = GuiCommon.bold_font_color
|
||||
flow1.silo_label_2.visible = false
|
||||
flow1.silo_label_3.visible = false
|
||||
@ -788,9 +770,8 @@ function Public.process_siloframe_and_questframe_updates(flowsilo, flowquest, bo
|
||||
|
||||
flow1.silo_progressbar.value = 1
|
||||
end
|
||||
|
||||
else
|
||||
flow1.silo_label_1.caption = {'pirates.gui_etaframe_charge'}
|
||||
flow1.silo_label_1.caption = { 'pirates.gui_etaframe_charge' }
|
||||
flow1.silo_label_1.style.font_color = GuiCommon.bold_font_color
|
||||
flow1.silo_label_2.visible = true
|
||||
flow1.silo_progressbar.visible = true
|
||||
@ -800,9 +781,9 @@ function Public.process_siloframe_and_questframe_updates(flowsilo, flowquest, bo
|
||||
local needed = dynamic_data.rocketsiloenergyneeded
|
||||
local recent = (dynamic_data.rocketsiloenergyconsumedwithinlasthalfsecond * 2)
|
||||
|
||||
flow1.silo_progressbar.value = consumed/needed
|
||||
flow1.silo_progressbar.value = consumed / needed
|
||||
|
||||
local tooltip = {'pirates.gui_etaframe_charge_tooltip', string.format('%.1f', Math.floor(consumed / 100000000)/10), string.format('%.1f', Math.floor(needed / 100000000)/10)}
|
||||
local tooltip = { 'pirates.gui_etaframe_charge_tooltip', string.format('%.1f', Math.floor(consumed / 100000000) / 10), string.format('%.1f', Math.floor(needed / 100000000) / 10) }
|
||||
flow1.tooltip = tooltip
|
||||
flow1.silo_label_1.tooltip = tooltip
|
||||
flow1.silo_label_2.tooltip = tooltip
|
||||
@ -836,16 +817,15 @@ function Public.process_siloframe_and_questframe_updates(flowsilo, flowquest, bo
|
||||
local quest_reward = dynamic_data.quest_reward or nil
|
||||
local quest_progress = dynamic_data.quest_progress or 0
|
||||
local quest_progressneeded = dynamic_data.quest_progressneeded or 0
|
||||
local quest_complete = dynamic_data.quest_complete or false
|
||||
local quest_complete = dynamic_data.quest_complete or false
|
||||
|
||||
if quest_type then
|
||||
|
||||
---@type string|table
|
||||
local tooltip = ''
|
||||
|
||||
if quest_complete and quest_reward then
|
||||
tooltip = {'pirates.gui_questframe_complete_tooltip', quest_type}
|
||||
flow1.quest_label_1.caption = {'pirates.gui_questframe'}
|
||||
tooltip = { 'pirates.gui_questframe_complete_tooltip', quest_type }
|
||||
flow1.quest_label_1.caption = { 'pirates.gui_questframe' }
|
||||
flow1.quest_label_1.style.font_color = GuiCommon.achieved_font_color
|
||||
flow1.quest_label_2.visible = true
|
||||
flow1.quest_label_3.visible = false
|
||||
@ -853,7 +833,7 @@ function Public.process_siloframe_and_questframe_updates(flowsilo, flowquest, bo
|
||||
flow1.quest_label_2.caption = quest_reward.display_amount .. ' ' .. quest_reward.display_sprite
|
||||
elseif quest_reward then
|
||||
if quest_progress < quest_progressneeded then
|
||||
flow1.quest_label_1.caption = {'pirates.gui_questframe'}
|
||||
flow1.quest_label_1.caption = { 'pirates.gui_questframe' }
|
||||
flow1.quest_label_1.style.font_color = GuiCommon.bold_font_color
|
||||
flow1.quest_label_2.visible = true
|
||||
flow1.quest_label_3.visible = true
|
||||
@ -867,7 +847,7 @@ function Public.process_siloframe_and_questframe_updates(flowsilo, flowquest, bo
|
||||
end
|
||||
|
||||
if quest_type == Quest.enum.TIME then
|
||||
if tooltip == '' then tooltip = {'pirates.gui_questframe_time'} end
|
||||
if tooltip == '' then tooltip = { 'pirates.gui_questframe_time' } end
|
||||
|
||||
if quest_progress >= 0 then
|
||||
flow1.quest_label_3.caption = string.format('%.0fm%.0fs', Math.floor(quest_progress / 60), quest_progress % 60)
|
||||
@ -885,49 +865,42 @@ function Public.process_siloframe_and_questframe_updates(flowsilo, flowquest, bo
|
||||
end
|
||||
end
|
||||
else
|
||||
flow1.quest_label_3.caption = {'pirates.gui_questframe_fail'}
|
||||
flow1.quest_label_3.caption = { 'pirates.gui_questframe_fail' }
|
||||
flow1.quest_label_3.style.font_color = GuiCommon.insufficient_font_color
|
||||
end
|
||||
|
||||
elseif quest_type == Quest.enum.WORMS then
|
||||
if tooltip == '' then tooltip = {'pirates.gui_questframe_worms'} end
|
||||
|
||||
if tooltip == '' then tooltip = { 'pirates.gui_questframe_worms' } end
|
||||
elseif quest_type == Quest.enum.FIND then
|
||||
if tooltip == '' then tooltip = {'pirates.gui_questframe_find'} end
|
||||
|
||||
if tooltip == '' then tooltip = { 'pirates.gui_questframe_find' } end
|
||||
elseif quest_type == Quest.enum.RESOURCEFLOW then
|
||||
if tooltip == '' then tooltip = {'pirates.gui_questframe_resourceflow'} end
|
||||
if tooltip == '' then tooltip = { 'pirates.gui_questframe_resourceflow' } end
|
||||
|
||||
-- out of date:
|
||||
if quest_progressneeded/60 % 1 == 0 then
|
||||
flow1.quest_label_2.caption = string.format('%s %.1f/%.0f /s', '[item=' .. quest_params.item .. ']', quest_progress/60, quest_progressneeded/60)
|
||||
if quest_progressneeded / 60 % 1 == 0 then
|
||||
flow1.quest_label_2.caption = string.format('%s %.1f/%.0f /s', '[item=' .. quest_params.item .. ']', quest_progress / 60, quest_progressneeded / 60)
|
||||
flow1.quest_label_3.caption = string.format(' for %s', quest_reward.display_sprite)
|
||||
else
|
||||
flow1.quest_label_2.caption = string.format('%s %.1f/%.1f /s', '[item=' .. quest_params.item .. ']', quest_progress/60, quest_progressneeded/60)
|
||||
flow1.quest_label_2.caption = string.format('%s %.1f/%.1f /s', '[item=' .. quest_params.item .. ']', quest_progress / 60, quest_progressneeded / 60)
|
||||
flow1.quest_label_3.caption = string.format(' for %s', quest_reward.display_sprite)
|
||||
end
|
||||
|
||||
elseif quest_type == Quest.enum.RESOURCECOUNT then
|
||||
if tooltip == '' then tooltip = {'pirates.gui_questframe_resourcecount'} end
|
||||
if tooltip == '' then tooltip = { 'pirates.gui_questframe_resourcecount' } end
|
||||
|
||||
flow1.quest_label_2.caption = string.format('%s ', '[item=' .. quest_params.item .. ']')
|
||||
|
||||
elseif quest_type == Quest.enum.NODAMAGE then
|
||||
if tooltip == '' then tooltip = {'pirates.gui_questframe_nodamage'} end
|
||||
if tooltip == '' then tooltip = { 'pirates.gui_questframe_nodamage' } end
|
||||
|
||||
if bools.approaching_bool or (dynamic_data.rocketsilos and dynamic_data.rocketsilos[1] and dynamic_data.rocketsilos[1].valid and dynamic_data.rocketsilohp == dynamic_data.rocketsilomaxhp) then
|
||||
flow1.quest_label_3.caption = {'pirates.gui_questframe_ok'}
|
||||
flow1.quest_label_3.caption = { 'pirates.gui_questframe_ok' }
|
||||
flow1.quest_label_3.style.font_color = GuiCommon.sufficient_font_color
|
||||
else
|
||||
flow1.quest_label_3.caption = {'pirates.gui_questframe_fail'}
|
||||
flow1.quest_label_3.caption = { 'pirates.gui_questframe_fail' }
|
||||
flow1.quest_label_3.style.font_color = GuiCommon.insufficient_font_color
|
||||
end
|
||||
|
||||
elseif quest_type == Quest.enum.FISH then
|
||||
if tooltip == '' then tooltip = {'pirates.gui_questframe_fish'} end
|
||||
|
||||
if tooltip == '' then tooltip = { 'pirates.gui_questframe_fish' } end
|
||||
elseif quest_type == Quest.enum.COMPILATRON then
|
||||
if tooltip == '' then tooltip = {'pirates.gui_questframe_compilatron'} end
|
||||
if tooltip == '' then tooltip = { 'pirates.gui_questframe_compilatron' } end
|
||||
end
|
||||
end
|
||||
|
||||
@ -943,7 +916,6 @@ function Public.process_siloframe_and_questframe_updates(flowsilo, flowquest, bo
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- local function create_gui_2()
|
||||
|
||||
-- end
|
||||
@ -965,11 +937,11 @@ function Public.update_gui(player)
|
||||
flow1 = pirates_flow.crew_piratebutton_frame.crew_piratebutton
|
||||
|
||||
if Common.is_id_valid(memory.id) then
|
||||
flow1.tooltip = {'pirates.gui_crew_tooltip_1'}
|
||||
flow1.mouse_button_filter = {'left','right'}
|
||||
flow1.tooltip = { 'pirates.gui_crew_tooltip_1' }
|
||||
flow1.mouse_button_filter = { 'left', 'right' }
|
||||
else
|
||||
flow1.tooltip = {'pirates.gui_crew_tooltip_2'}
|
||||
flow1.mouse_button_filter = {'middle'} --hack to avoid press visual
|
||||
flow1.tooltip = { 'pirates.gui_crew_tooltip_2' }
|
||||
flow1.mouse_button_filter = { 'middle' } --hack to avoid press visual
|
||||
if player.gui.screen['crew_piratewindow'] then
|
||||
player.gui.screen['crew_piratewindow'].destroy()
|
||||
end
|
||||
@ -978,11 +950,11 @@ function Public.update_gui(player)
|
||||
flow1 = pirates_flow.classes_piratebutton_frame.classes_piratebutton
|
||||
|
||||
if Common.is_id_valid(memory.id) then
|
||||
flow1.tooltip = {'pirates.gui_classes_tooltip_1'}
|
||||
flow1.mouse_button_filter = {'left','right'}
|
||||
flow1.tooltip = { 'pirates.gui_classes_tooltip_1' }
|
||||
flow1.mouse_button_filter = { 'left', 'right' }
|
||||
else
|
||||
flow1.tooltip = {'pirates.gui_classes_tooltip_2'}
|
||||
flow1.mouse_button_filter = {'middle'} --hack to avoid press visual
|
||||
flow1.tooltip = { 'pirates.gui_classes_tooltip_2' }
|
||||
flow1.mouse_button_filter = { 'middle' } --hack to avoid press visual
|
||||
if player.gui.screen['classes_piratewindow'] then
|
||||
player.gui.screen['classes_piratewindow'].destroy()
|
||||
end
|
||||
@ -993,7 +965,6 @@ function Public.update_gui(player)
|
||||
if GuiRuns.full_update then GuiRuns.full_update(player) end
|
||||
if GuiCrew.full_update then GuiCrew.full_update(player) end
|
||||
if GuiClasses.full_update then GuiClasses.full_update(player) end
|
||||
if GuiFuel.regular_update then GuiFuel.regular_update(player) end --moved to event
|
||||
if GuiMinimap.full_update then GuiMinimap.full_update(player) end
|
||||
if GuiInfo.full_update then GuiInfo.full_update(player) end
|
||||
|
||||
@ -1013,7 +984,7 @@ function Public.update_gui(player)
|
||||
flow1 = pirates_flow.fuel_flow
|
||||
-- flow1 = pirates_flow.fuel_piratebutton_flow_1
|
||||
|
||||
local tooltip = {'pirates.fuel_tooltip', Math.floor(memory.stored_fuel or 0)}
|
||||
local tooltip = { 'pirates.fuel_tooltip', Math.floor(memory.stored_fuel or 0) }
|
||||
flow1.tooltip = tooltip
|
||||
-- flow1.fuel_piratebutton.tooltip = {'pirates.fuel_tooltip', Math.floor(memory.stored_fuel or 0)}
|
||||
|
||||
@ -1023,11 +994,11 @@ function Public.update_gui(player)
|
||||
|
||||
flow2.fuel_label_1.caption = Utils.bignumber_abbrevform(memory.stored_fuel or 0) .. '[item=coal]'
|
||||
flow2.fuel_label_2.caption = Utils.negative_rate_abbrevform(memory.fuel_depletion_rate_memoized or 0)
|
||||
local color_scale = Math.clamp(0, 1, (- (memory.fuel_depletion_rate_memoized or 0))/30)
|
||||
local color_scale = Math.clamp(0, 1, (-(memory.fuel_depletion_rate_memoized or 0)) / 30)
|
||||
flow2.fuel_label_2.style.font_color = {
|
||||
r = GuiCommon.fuel_color_1.r * (1-color_scale) + GuiCommon.fuel_color_2.r * color_scale,
|
||||
g = GuiCommon.fuel_color_1.g * (1-color_scale) + GuiCommon.fuel_color_2.g * color_scale,
|
||||
b = GuiCommon.fuel_color_1.b * (1-color_scale) + GuiCommon.fuel_color_2.b * color_scale,
|
||||
r = GuiCommon.fuel_color_1.r * (1 - color_scale) + GuiCommon.fuel_color_2.r * color_scale,
|
||||
g = GuiCommon.fuel_color_1.g * (1 - color_scale) + GuiCommon.fuel_color_2.g * color_scale,
|
||||
b = GuiCommon.fuel_color_1.b * (1 - color_scale) + GuiCommon.fuel_color_2.b * color_scale,
|
||||
}
|
||||
flow2.fuel_label_0.tooltip = tooltip
|
||||
flow2.fuel_label_1.tooltip = tooltip
|
||||
@ -1037,7 +1008,7 @@ function Public.update_gui(player)
|
||||
flow1 = pirates_flow.progress_piratebutton_frame.progress_piratebutton
|
||||
|
||||
flow1.number = (memory.overworldx or 0)
|
||||
flow1.tooltip = {'pirates.gui_progress_tooltip', memory.overworldx or 0, CoreData.victory_x}
|
||||
flow1.tooltip = { 'pirates.gui_progress_tooltip', memory.overworldx or 0, CoreData.victory_x }
|
||||
-- pirates_flow.destination_piratebutton_frame.destination_piratebutton.number = memory.destinationsvisited_indices and #memory.destinationsvisited_indices or 0
|
||||
|
||||
|
||||
@ -1178,41 +1149,41 @@ function Public.update_gui(player)
|
||||
|
||||
if not flow1 then --comfy panel might possibly destroy this, so this puts it back
|
||||
flow1 =
|
||||
player.gui.screen.add(
|
||||
{
|
||||
type = 'camera',
|
||||
name = 'pirates_spontaneous_camera',
|
||||
position = {x=0,y=0},
|
||||
}
|
||||
)
|
||||
player.gui.screen.add(
|
||||
{
|
||||
type = 'camera',
|
||||
name = 'pirates_spontaneous_camera',
|
||||
position = { x = 0, y = 0 },
|
||||
}
|
||||
)
|
||||
flow1.visible = false
|
||||
flow1.style.margin = 8
|
||||
end
|
||||
|
||||
if flow1 then
|
||||
flow1.visible = false
|
||||
flow1.location = {x = 8, y = 48}
|
||||
flow1.location = { x = 8, y = 48 }
|
||||
if bools.on_deck_standing_near_loco_bool then
|
||||
flow1.visible = true
|
||||
flow1.surface_index = Hold.get_hold_surface(1).index
|
||||
flow1.zoom = 0.182
|
||||
flow1.style.minimal_height = 292
|
||||
flow1.style.minimal_width = 540
|
||||
flow1.position = {x=0,y=-2}
|
||||
flow1.position = { x = 0, y = -2 }
|
||||
elseif bools.on_deck_standing_near_cabin_bool then
|
||||
flow1.visible = true
|
||||
flow1.surface_index = Cabin.get_cabin_surface().index
|
||||
flow1.zoom = 0.468
|
||||
flow1.style.minimal_height = 400
|
||||
flow1.style.minimal_width = 280
|
||||
flow1.position = {x=0,y=-1}
|
||||
flow1.position = { x = 0, y = -1 }
|
||||
elseif bools.on_deck_standing_near_crowsnest_bool then
|
||||
flow1.visible = true
|
||||
flow1.surface_index = Crowsnest.get_crowsnest_surface().index
|
||||
flow1.zoom = 0.21
|
||||
flow1.style.minimal_height = 384
|
||||
flow1.style.minimal_width = 384
|
||||
flow1.position = {x=memory.overworldx,y=memory.overworldy}
|
||||
flow1.position = { x = memory.overworldx, y = memory.overworldy }
|
||||
elseif bools.in_crowsnest_bool then
|
||||
flow1.visible = true
|
||||
flow1.surface_index = game.surfaces[memory.boat.surface_name].index
|
||||
@ -1223,15 +1194,13 @@ function Public.update_gui(player)
|
||||
local position = memory.boat.position
|
||||
if (destination and destination.type and destination.type == Surfaces.enum.ISLAND and memory.boat.surface_name and memory.boat.surface_name == destination.surface_name and destination.static_params and destination.static_params.boat_starting_xposition) then
|
||||
-- nicer viewing position:
|
||||
position = {x = destination.static_params.boat_starting_xposition + 50, y = destination.static_params.boat_starting_yposition or 0}
|
||||
position = { x = destination.static_params.boat_starting_xposition + 50, y = destination.static_params.boat_starting_yposition or 0 }
|
||||
end
|
||||
flow1.position = position
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- ATTENTION: Giving same names to GUI elements can cause issues, because click events are dispatched to all GUI windows!
|
||||
local function on_gui_click(event)
|
||||
if not event then return end
|
||||
@ -1258,7 +1227,6 @@ local function on_gui_click(event)
|
||||
memory.undock_shortcut_are_you_sure_data[player.index] = game.tick
|
||||
end
|
||||
end
|
||||
|
||||
elseif memory.boat.state == Boats.enum_state.ATSEA_WAITING_TO_SAIL then
|
||||
if Roles.player_privilege_level(player) >= Roles.privilege_levels.CAPTAIN then
|
||||
local destination_index = memory.mapbeingloadeddestination_index
|
||||
@ -1266,7 +1234,6 @@ local function on_gui_click(event)
|
||||
Progression.progress_to_destination(destination_index)
|
||||
memory.loadingticks = 0
|
||||
end
|
||||
|
||||
elseif memory.boat.state == Boats.enum_state.ATSEA_VICTORIOUS then
|
||||
if Roles.player_privilege_level(player) >= Roles.privilege_levels.CAPTAIN then
|
||||
memory.boat.state = Boats.enum_state.ATSEA_SAILING
|
||||
@ -1275,17 +1242,16 @@ local function on_gui_click(event)
|
||||
if not (force and force.valid) then return end
|
||||
if memory.victory_continue_message then
|
||||
memory.victory_continue_message = false
|
||||
Common.notify_force(force, {'pirates.crew_continue_on_freeplay'}, CoreData.colors.notify_victory)
|
||||
Common.notify_force(force, { 'pirates.crew_continue_on_freeplay' }, CoreData.colors.notify_victory)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
elseif string.sub(event.element.name, -13, -1) and string.sub(event.element.name, -13, -1) == '_piratebutton' then
|
||||
local name = string.sub(event.element.name, 1, -14)
|
||||
if Public[name] then
|
||||
Public[name].toggle_window(player)
|
||||
Public[name].full_update(player)
|
||||
end
|
||||
local name = string.sub(event.element.name, 1, -14)
|
||||
if Public[name] then
|
||||
Public[name].toggle_window(player)
|
||||
Public[name].full_update(player)
|
||||
end
|
||||
-- elseif event.element.name == 'fuel_label_1' or event.element.name == 'fuel_label_2' then
|
||||
-- Public.fuel.toggle_window(player)
|
||||
-- Public.fuel.full_update(player)
|
||||
@ -1294,10 +1260,9 @@ local function on_gui_click(event)
|
||||
if GuiRuns.click then GuiRuns.click(event) end
|
||||
if GuiCrew.click then GuiCrew.click(event) end
|
||||
if GuiClasses.click then GuiClasses.click(event) end
|
||||
if GuiFuel.click then GuiFuel.click(event) end
|
||||
if GuiMinimap.click then GuiMinimap.click(event) end
|
||||
if GuiInfo.click then GuiInfo.click(event) end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function on_gui_location_changed(event)
|
||||
@ -1320,4 +1285,4 @@ event.add(defines.events.on_gui_location_changed, on_gui_location_changed)
|
||||
|
||||
|
||||
|
||||
return Public
|
||||
return Public
|
||||
|
@ -40,7 +40,7 @@ function Public.toggle_window(player)
|
||||
end -- else:
|
||||
|
||||
flow = GuiCommon.new_window(player, window_name)
|
||||
flow.caption = {'pirates.gui_minimap_outside_view'}
|
||||
flow.caption = { 'pirates.gui_minimap_outside_view' }
|
||||
flow.style.maximal_width = 800
|
||||
|
||||
local memory = Memory.get_crew_memory()
|
||||
@ -60,11 +60,11 @@ function Public.toggle_window(player)
|
||||
|
||||
if not (memory.boat and memory.boat.position and memory.boat.surface_name) then return end
|
||||
|
||||
local position = memory.boat.position
|
||||
local position = memory.boat.position
|
||||
local destination = Common.current_destination()
|
||||
if (destination and destination.type and destination.type == Surfaces.enum.ISLAND and destination.static_params and destination.static_params.boat_starting_xposition) then
|
||||
-- nicer viewing position:
|
||||
position = {x = destination.static_params.boat_starting_xposition + 50, y = destination.static_params.boat_starting_yposition or 0}
|
||||
position = { x = destination.static_params.boat_starting_xposition + 50, y = destination.static_params.boat_starting_yposition or 0 }
|
||||
end
|
||||
local zoom
|
||||
if gui_memory and gui_memory[window_name] and gui_memory[window_name].zoom then
|
||||
@ -79,25 +79,25 @@ function Public.toggle_window(player)
|
||||
size = default_size
|
||||
end
|
||||
|
||||
local element = flow['camera']
|
||||
if not element then
|
||||
element =
|
||||
flow.add(
|
||||
{
|
||||
type = 'camera',
|
||||
name = 'camera',
|
||||
position = position,
|
||||
surface_index = game.surfaces[memory.boat.surface_name].index,
|
||||
zoom = zoom,
|
||||
tooltip = {'pirates.gui_minimap_tooltip'}
|
||||
}
|
||||
)
|
||||
element.style.margin = 1
|
||||
element.style.minimal_height = size
|
||||
element.style.minimal_width = size
|
||||
element.style.maximal_height = size
|
||||
element.style.maximal_width = size
|
||||
end
|
||||
local element = flow['camera']
|
||||
if not element then
|
||||
element =
|
||||
flow.add(
|
||||
{
|
||||
type = 'camera',
|
||||
name = 'camera',
|
||||
position = position,
|
||||
surface_index = game.surfaces[memory.boat.surface_name].index,
|
||||
zoom = zoom,
|
||||
tooltip = { 'pirates.gui_minimap_tooltip' }
|
||||
}
|
||||
)
|
||||
element.style.margin = 1
|
||||
element.style.minimal_height = size
|
||||
element.style.minimal_width = size
|
||||
element.style.maximal_height = size
|
||||
element.style.maximal_width = size
|
||||
end
|
||||
|
||||
flow2 = GuiCommon.flow_add_close_button(flow, window_name .. '_piratebutton')
|
||||
flow2.add(
|
||||
@ -107,16 +107,12 @@ function Public.toggle_window(player)
|
||||
index = 1,
|
||||
allow_none_state = false,
|
||||
switch_state = switch_state,
|
||||
left_label_caption = {'pirates.gui_minimap_switch_left'},
|
||||
right_label_caption = {'pirates.gui_minimap_switch_right'},
|
||||
left_label_caption = { 'pirates.gui_minimap_switch_left' },
|
||||
right_label_caption = { 'pirates.gui_minimap_switch_right' },
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- function Public.regular_update(player)
|
||||
|
||||
-- end
|
||||
@ -131,13 +127,13 @@ function Public.full_update(player)
|
||||
if not player.gui.screen[window_name .. '_piratewindow'] then return end
|
||||
flow = player.gui.screen[window_name .. '_piratewindow']
|
||||
|
||||
local element = flow['camera']
|
||||
local element = flow['camera']
|
||||
if element then
|
||||
local position = boat.position
|
||||
local destination = Common.current_destination()
|
||||
if (destination and destination.type and destination.type == Surfaces.enum.ISLAND and boat.surface_name and boat.surface_name == destination.surface_name and destination.static_params and destination.static_params.boat_starting_xposition) then
|
||||
-- nicer viewing position:
|
||||
position = {x = destination.static_params.boat_starting_xposition + 50, y = destination.static_params.boat_starting_yposition or 0}
|
||||
position = { x = destination.static_params.boat_starting_xposition + 50, y = destination.static_params.boat_starting_yposition or 0 }
|
||||
end
|
||||
|
||||
if position then
|
||||
@ -149,7 +145,6 @@ function Public.full_update(player)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function Public.click(event)
|
||||
if not event.element then return end
|
||||
if not event.element.valid then return end
|
||||
@ -162,13 +157,8 @@ function Public.click(event)
|
||||
-- local flow = player.gui.screen[window_name .. '_piratewindow']
|
||||
|
||||
-- local memory = Memory.get_crew_memory()
|
||||
-- local shop_data = Shop.main_shop_data
|
||||
|
||||
-- if eventname == 'buy_button' then
|
||||
-- Shop.Captains.main_shop_try_purchase(event.element.parent.name)
|
||||
-- end
|
||||
|
||||
if eventname ~= 'camera' then return end
|
||||
if eventname ~= 'camera' then return end
|
||||
|
||||
local zoom = default_zoom
|
||||
local size = default_size
|
||||
@ -181,7 +171,7 @@ function Public.click(event)
|
||||
size = gui_memory[window_name].size or default_size
|
||||
end
|
||||
|
||||
if event.button == defines.mouse_button_type.right then
|
||||
if event.button == defines.mouse_button_type.right then
|
||||
if zoom == 0.15 then
|
||||
zoom = 0.11
|
||||
elseif zoom == 0.11 then
|
||||
@ -189,9 +179,9 @@ function Public.click(event)
|
||||
else
|
||||
zoom = 0.04
|
||||
end
|
||||
event.element.zoom = zoom
|
||||
end
|
||||
if event.button == defines.mouse_button_type.left then
|
||||
event.element.zoom = zoom
|
||||
end
|
||||
if event.button == defines.mouse_button_type.left then
|
||||
if zoom == 0.04 then
|
||||
zoom = 0.07
|
||||
elseif zoom == 0.07 then
|
||||
@ -199,9 +189,9 @@ function Public.click(event)
|
||||
else
|
||||
zoom = 0.15
|
||||
end
|
||||
event.element.zoom = zoom
|
||||
end
|
||||
if event.button == defines.mouse_button_type.middle then
|
||||
event.element.zoom = zoom
|
||||
end
|
||||
if event.button == defines.mouse_button_type.middle then
|
||||
if size == 340 then
|
||||
size = 440
|
||||
elseif size == 440 then
|
||||
@ -213,31 +203,29 @@ function Public.click(event)
|
||||
else
|
||||
size = 340
|
||||
end
|
||||
event.element.style.minimal_height = size
|
||||
event.element.style.minimal_width = size
|
||||
event.element.style.maximal_height = size
|
||||
event.element.style.maximal_width = size
|
||||
end
|
||||
event.element.style.minimal_height = size
|
||||
event.element.style.minimal_width = size
|
||||
event.element.style.maximal_height = size
|
||||
event.element.style.maximal_width = size
|
||||
end
|
||||
|
||||
GuiCommon.update_gui_memory(player, window_name, 'zoom', zoom)
|
||||
GuiCommon.update_gui_memory(player, window_name, 'size', size)
|
||||
end
|
||||
|
||||
|
||||
|
||||
local function on_player_changed_surface(event)
|
||||
local player = game.players[event.player_index]
|
||||
if not Common.validate_player_and_character(player) then
|
||||
return
|
||||
end
|
||||
local player = game.players[event.player_index]
|
||||
if not Common.validate_player_and_character(player) then
|
||||
return
|
||||
end
|
||||
|
||||
local window = player.gui.screen[window_name .. '_piratewindow']
|
||||
|
||||
local from_hold_or_cabin_bool = string.sub(game.surfaces[event.surface_index].name, 9, 12) == 'Hold' or string.sub(game.surfaces[event.surface_index].name, 9, 13) == 'Cabin'
|
||||
local to_hold_or_cabin_bool = string.sub(player.surface.name, 9, 12) == 'Hold' or string.sub(player.surface.name, 9, 13) == 'Cabin'
|
||||
|
||||
if from_hold_or_cabin_bool and (not to_hold_or_cabin_bool) then
|
||||
if window then
|
||||
if from_hold_or_cabin_bool and (not to_hold_or_cabin_bool) then
|
||||
if window then
|
||||
Public.toggle_window(player)
|
||||
end
|
||||
elseif to_hold_or_cabin_bool and (not from_hold_or_cabin_bool) then
|
||||
@ -247,11 +235,10 @@ local function on_player_changed_surface(event)
|
||||
if (gui_memory and gui_memory[window_name] and gui_memory[window_name].auto_map) or (not gui_memory) or (gui_memory and (not gui_memory[window_name])) then --if no gui memory exists for this, default to opening the minimap
|
||||
Public.toggle_window(player)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
local event = require 'utils.event'
|
||||
event.add(defines.events.on_player_changed_surface, on_player_changed_surface)
|
||||
|
||||
return Public
|
||||
return Public
|
||||
|
@ -57,7 +57,7 @@ require 'maps.pirates.ores'
|
||||
require 'maps.pirates.quest'
|
||||
require 'maps.pirates.parrot'
|
||||
require 'maps.pirates.shop.shop'
|
||||
require 'maps.pirates.boat_upgrades'
|
||||
require 'maps.pirates.shop.boat_upgrades'
|
||||
local Token = require 'utils.token'
|
||||
local Task = require 'utils.task'
|
||||
local Server = require 'utils.server'
|
||||
|
@ -26,7 +26,7 @@ local Crew = require 'maps.pirates.crew'
|
||||
-- local Hold = require 'maps.pirates.surfaces.hold'
|
||||
-- local Cabin = require 'maps.pirates.surfaces.cabin'
|
||||
local Shop = require 'maps.pirates.shop.shop'
|
||||
local Upgrades = require 'maps.pirates.boat_upgrades'
|
||||
local Upgrades = require 'maps.pirates.shop.boat_upgrades'
|
||||
local Kraken = require 'maps.pirates.surfaces.sea.kraken'
|
||||
local Highscore = require 'maps.pirates.highscore'
|
||||
local CustomEvents = require 'maps.pirates.custom_events'
|
||||
@ -424,12 +424,13 @@ function Public.generate_overworld_destination(p)
|
||||
}
|
||||
|
||||
local i = 1
|
||||
for price_name, price_count in pairs(Shop.Captains.main_shop_data_1[dest.static_params.upgrade_for_sale].base_cost) do
|
||||
for _, price_data in ipairs(Upgrades.upgrades_data[dest.static_params.upgrade_for_sale].market_item.price) do
|
||||
local price_name, price_count = price_data[1], price_data[2]
|
||||
local sprite
|
||||
if price_name == 'fuel' then
|
||||
if price_name == 'coal' then
|
||||
sprite = 'item/coal'
|
||||
else
|
||||
sprite = 'item/coin'
|
||||
sprite = 'item/' .. price_name
|
||||
end
|
||||
dest.dynamic_data.crowsnest_renderings[price_name] = {
|
||||
text_rendering = rendering.draw_text {
|
||||
@ -516,7 +517,12 @@ function Public.ensure_lane_generated_up_to(lane_yvalue, x)
|
||||
end
|
||||
for rendering_name, r in pairs(dest.dynamic_data.crowsnest_renderings) do
|
||||
if type(r) == 'table' and r.text_rendering and rendering.is_valid(r.text_rendering) then
|
||||
rendering.set_text(r.text_rendering, Utils.bignumber_abbrevform2(Shop.Captains.main_shop_data_1[dest.static_params.upgrade_for_sale].base_cost[rendering_name]))
|
||||
for _, price_data in ipairs(Upgrades.upgrades_data[dest.static_params.upgrade_for_sale].market_item.price) do
|
||||
if price_data[1] == rendering_name then
|
||||
rendering.set_text(r.text_rendering, Utils.bignumber_abbrevform2(price_data[2]))
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -29,7 +29,7 @@ local Shop = require 'maps.pirates.shop.shop'
|
||||
local Overworld = require 'maps.pirates.overworld'
|
||||
local Hold = require 'maps.pirates.surfaces.hold'
|
||||
local Cabin = require 'maps.pirates.surfaces.cabin'
|
||||
local Upgrades = require 'maps.pirates.boat_upgrades'
|
||||
local Upgrades = require 'maps.pirates.shop.boat_upgrades'
|
||||
local Task = require 'utils.task'
|
||||
local Token = require 'utils.token'
|
||||
local ShopDock = require 'maps.pirates.shop.dock'
|
||||
@ -133,8 +133,6 @@ function Public.go_from_starting_dock_to_first_destination()
|
||||
|
||||
boat.stored_resources = {}
|
||||
|
||||
Shop.Captains.initialise_captains_shop()
|
||||
|
||||
Hold.create_hold_surface(1)
|
||||
boat.EEI_stage = 1
|
||||
boat.random_class_purchase_count = 0
|
||||
@ -261,8 +259,6 @@ function Public.progress_to_destination(destination_index)
|
||||
end
|
||||
end
|
||||
|
||||
script.raise_event(CustomEvents.enum['update_crew_fuel_gui'], {})
|
||||
|
||||
-- Delay.add(Delay.enum.PLACE_DOCK_JETTY_AND_BOATS)
|
||||
Task.set_timeout_in_ticks(2, place_dock_jetty_and_boats, { crew_id = memory.id })
|
||||
else
|
||||
@ -413,8 +409,6 @@ function Public.check_for_end_of_boat_movement(boat)
|
||||
memory.mainshop_availability_bools.unlock_merchants = false
|
||||
memory.mainshop_availability_bools.rockets_for_sale = false
|
||||
|
||||
script.raise_event(CustomEvents.enum['update_crew_fuel_gui'], {})
|
||||
|
||||
Public.go_from_currentdestination_to_sea()
|
||||
|
||||
return true
|
||||
@ -492,8 +486,6 @@ function Public.undock_from_dock(manual)
|
||||
memory.mainshop_availability_bools.new_boat_cutter_with_hold = false
|
||||
memory.mainshop_availability_bools.new_boat_sloop_with_hold = false
|
||||
|
||||
script.raise_event(CustomEvents.enum['update_crew_fuel_gui'], {})
|
||||
|
||||
Crew.summon_crew()
|
||||
|
||||
local force = memory.force
|
||||
|
@ -49,13 +49,78 @@ Public.crowsnest_display_form = {
|
||||
[enum.UPGRADE_CANNONS] = { 'pirates.upgrade_cannons_crowsnest_form' },
|
||||
}
|
||||
|
||||
-- WARNING: The dock market pulls from these values, but the Crowsnest caption pulls data from main_shop_data_1. So don't change one without the other
|
||||
Public.market_offer_form = {
|
||||
[enum.MORE_POWER] = { price = { { 'coin', 7000 }, { 'coal', 500 } }, offer = { type = 'nothing', effect_description = { 'pirates.market_description_upgrade_power' } } },
|
||||
[enum.EXTRA_HOLD] = { price = { { 'coin', 7000 }, { 'coal', 500 } }, offer = { type = 'nothing', effect_description = { 'pirates.market_description_upgrade_hold' } } },
|
||||
[enum.UNLOCK_MERCHANTS] = { price = { { 'coin', 14000 }, { 'coal', 1000 } }, offer = { type = 'nothing', effect_description = { 'pirates.market_description_upgrade_merchants' } } },
|
||||
[enum.ROCKETS_FOR_SALE] = { price = { { 'coin', 21000 }, { 'coal', 1000 } }, offer = { type = 'nothing', effect_description = { 'pirates.market_description_upgrade_rockets' } } },
|
||||
[enum.UPGRADE_CANNONS] = { price = { { 'repair-pack', 20 }, { 'coin', 5000 }, { 'coal', 800 } }, offer = { type = 'nothing', effect_description = { 'pirates.market_description_upgrade_turrets' } } },
|
||||
Public.upgrades_data = {
|
||||
[enum.MORE_POWER] = {
|
||||
market_item = {
|
||||
price = {
|
||||
{ 'coin', 7000 },
|
||||
{ 'coal', 500 }
|
||||
},
|
||||
offer = {
|
||||
type = 'nothing',
|
||||
effect_description = { 'pirates.market_description_upgrade_power' }
|
||||
},
|
||||
},
|
||||
tooltip = { 'pirates.market_description_upgrade_power' },
|
||||
what_you_get_sprite_buttons = { ['utility/status_working'] = false },
|
||||
},
|
||||
[enum.EXTRA_HOLD] = {
|
||||
market_item = {
|
||||
price = {
|
||||
{ 'coin', 7000 },
|
||||
{ 'coal', 500 }
|
||||
},
|
||||
offer = {
|
||||
type = 'nothing',
|
||||
effect_description = { 'pirates.market_description_upgrade_hold' }
|
||||
},
|
||||
},
|
||||
tooltip = { 'pirates.market_description_upgrade_hold' },
|
||||
what_you_get_sprite_buttons = { ['item/steel-chest'] = false },
|
||||
},
|
||||
[enum.UNLOCK_MERCHANTS] = {
|
||||
market_item = {
|
||||
price = {
|
||||
{ 'coin', 14000 },
|
||||
{ 'coal', 1000 }
|
||||
},
|
||||
offer = {
|
||||
type = 'nothing',
|
||||
effect_description = { 'pirates.market_description_upgrade_merchants' }
|
||||
},
|
||||
},
|
||||
tooltip = { 'pirates.market_description_upgrade_merchants' },
|
||||
what_you_get_sprite_buttons = { ['entity/market'] = false },
|
||||
},
|
||||
[enum.ROCKETS_FOR_SALE] = {
|
||||
market_item = {
|
||||
price = {
|
||||
{ 'coin', 21000 },
|
||||
{ 'coal', 1000 }
|
||||
},
|
||||
offer = {
|
||||
type = 'nothing',
|
||||
effect_description = { 'pirates.market_description_upgrade_rockets' }
|
||||
},
|
||||
},
|
||||
tooltip = { 'pirates.market_description_upgrade_rockets' },
|
||||
what_you_get_sprite_buttons = { ['item/rocket-launcher'] = false },
|
||||
},
|
||||
[enum.UPGRADE_CANNONS] = {
|
||||
market_item = {
|
||||
price = {
|
||||
{ 'repair-pack', 20 },
|
||||
{ 'coin', 5000 },
|
||||
{ 'coal', 800 }
|
||||
},
|
||||
offer = {
|
||||
type = 'nothing',
|
||||
effect_description = { 'pirates.market_description_upgrade_turrets' }
|
||||
},
|
||||
},
|
||||
tooltip = { 'pirates.market_description_upgrade_turrets' },
|
||||
what_you_get_sprite_buttons = { ['item/artillery-turret'] = false },
|
||||
},
|
||||
}
|
||||
|
||||
function Public.execute_upgade(upgrade_type, player)
|
@ -1,347 +0,0 @@
|
||||
-- This file is part of thesixthroc's Pirate Ship softmod, licensed under GPLv3 and stored at https://github.com/ComfyFactory/ComfyFactorio and https://github.com/danielmartin0/ComfyFactorio-Pirates.
|
||||
|
||||
|
||||
local Memory = require 'maps.pirates.memory'
|
||||
-- local Roles = require 'maps.pirates.roles.roles'
|
||||
-- local Balance = require 'maps.pirates.balance'
|
||||
-- local Common = require 'maps.pirates.common'
|
||||
-- local Utils = require 'maps.pirates.utils_local'
|
||||
-- local Math = require 'maps.pirates.math'
|
||||
-- local Loot = require 'maps.pirates.loot'
|
||||
local _inspect = require 'utils.inspect'.inspect
|
||||
local Upgrades = require 'maps.pirates.boat_upgrades'
|
||||
-- local Hold = require 'maps.pirates.surfaces.hold'
|
||||
-- local Crew = require 'maps.pirates.crew'
|
||||
-- local Boats = require 'maps.pirates.structures.boats.boats'
|
||||
-- local Dock = require 'maps.pirates.surfaces.dock'
|
||||
local CustomEvents = require 'maps.pirates.custom_events'
|
||||
|
||||
local Public = {}
|
||||
|
||||
|
||||
|
||||
-- Note! This file is deprecated. It is replaced with a dedicated market at the dock and inside the captain's cabin. The exception is main_shop_data_1 as noted below, which is consulted for the Crowsnest caption. (Haven't had time to unify this yet.)
|
||||
|
||||
|
||||
|
||||
--== Warning: If something only costs fuel, then we need to check the player can't buy it whilst they're dead
|
||||
|
||||
-- WARNING: The Crowsnest caption pulls data from this data. But the actual dock market pulls from boat_upgrades.lua.
|
||||
Public.main_shop_data_1 = {
|
||||
-- upgrade_cannons = {
|
||||
-- tooltip = 'Increase cannons max health. This will also repair them.',
|
||||
-- what_you_get_sprite_buttons = {['item/artillery-turret'] = false},
|
||||
-- base_cost = {coins = 1000},
|
||||
-- },
|
||||
new_boat_cutter = {
|
||||
tooltip = 'Purchase a cutter.',
|
||||
what_you_get_sprite_buttons = { ['utility/spawn_flag'] = false },
|
||||
base_cost = { fuel = 3000 },
|
||||
},
|
||||
new_boat_sloop_with_hold = {
|
||||
tooltip = 'Purchase a sloop (with hold).',
|
||||
what_you_get_sprite_buttons = { ['utility/spawn_flag'] = false },
|
||||
base_cost = { fuel = 3500 },
|
||||
},
|
||||
new_boat_cutter_with_hold = {
|
||||
tooltip = 'Purchase a cutter (with hold).',
|
||||
what_you_get_sprite_buttons = { ['utility/spawn_flag'] = false },
|
||||
base_cost = { fuel = 5000 },
|
||||
},
|
||||
-- buy_iron = {
|
||||
-- tooltip = 'Purchase 250 iron plates for 300 stored fuel.',
|
||||
-- what_you_get_sprite_buttons = {['item/iron-plate'] = 250},
|
||||
-- base_cost = {fuel = 300},
|
||||
-- },
|
||||
-- buy_copper = {
|
||||
-- tooltip = 'Purchase 250 copper plates for 300 stored fuel.',
|
||||
-- what_you_get_sprite_buttons = {['item/copper-plate'] = 250},
|
||||
-- base_cost = {fuel = 300},
|
||||
-- },
|
||||
-- sell_iron = {
|
||||
-- tooltip = 'Purchase 200 stored fuel for 2000 iron plates.',
|
||||
-- what_you_get_sprite_buttons = {['item/sulfur'] = 200},
|
||||
-- base_cost = {iron_plates = 2000},
|
||||
-- },
|
||||
-- sell_copper = {
|
||||
-- tooltip = 'Purchase 100 stored fuel for 2500 copper plates',
|
||||
-- what_you_get_sprite_buttons = {['item/sulfur'] = 100},
|
||||
-- base_cost = {copper_plates = 2500},
|
||||
-- },
|
||||
-- as as initial pass let's try making the fuel values half of the old gold values...
|
||||
[Upgrades.enum.MORE_POWER] = {
|
||||
tooltip = { 'pirates.market_description_upgrade_power' },
|
||||
what_you_get_sprite_buttons = { ['utility/status_working'] = false },
|
||||
base_cost = { coins = 7000, fuel = 500 },
|
||||
},
|
||||
[Upgrades.enum.EXTRA_HOLD] = {
|
||||
tooltip = { 'pirates.market_description_upgrade_hold' },
|
||||
what_you_get_sprite_buttons = { ['item/steel-chest'] = false },
|
||||
base_cost = { coins = 7000, fuel = 500 },
|
||||
},
|
||||
[Upgrades.enum.UNLOCK_MERCHANTS] = {
|
||||
tooltip = { 'pirates.market_description_upgrade_merchants' },
|
||||
what_you_get_sprite_buttons = { ['entity/market'] = false },
|
||||
base_cost = { coins = 14000, fuel = 1000 },
|
||||
},
|
||||
[Upgrades.enum.ROCKETS_FOR_SALE] = {
|
||||
tooltip = { 'pirates.market_description_upgrade_rockets' },
|
||||
what_you_get_sprite_buttons = { ['item/rocket-launcher'] = false },
|
||||
base_cost = { coins = 21000, fuel = 1000 },
|
||||
},
|
||||
[Upgrades.enum.UPGRADE_CANNONS] = {
|
||||
tooltip = { 'pirates.market_description_upgrade_turrets' },
|
||||
what_you_get_sprite_buttons = { ['item/artillery-turret'] = false },
|
||||
base_cost = { coins = 5000, fuel = 800 },
|
||||
},
|
||||
}
|
||||
|
||||
Public.main_shop_data_2 = {
|
||||
rail_signal = {
|
||||
tooltip = "50 signals, used to steer the boat one space in the Crow's Nest View.",
|
||||
what_you_get_sprite_buttons = { ['item/rail-signal'] = 50 },
|
||||
base_cost = { coins = 500, fuel = 50 },
|
||||
},
|
||||
artillery_shell = {
|
||||
tooltip = '8 cannon shells.',
|
||||
what_you_get_sprite_buttons = { ['item/artillery-shell'] = 8 },
|
||||
base_cost = { coins = 800, fuel = 30 },
|
||||
},
|
||||
-- artillery_remote = {
|
||||
-- tooltip = 'An artillery targeting remote.',
|
||||
-- what_you_get_sprite_buttons = {['item/artillery-targeting-remote'] = 1},
|
||||
-- base_cost = {coins = 12000, fuel = 2500},
|
||||
-- },
|
||||
-- buy_fast_loader = {
|
||||
-- tooltip = 'A fast loader for 500 stored fuel.',
|
||||
-- what_you_get_sprite_buttons = {['item/fast-loader'] = 1},
|
||||
-- base_cost = {fuel = 500},
|
||||
-- },
|
||||
uranium_ore = {
|
||||
tooltip = '10 green rocks of unknown origin.',
|
||||
what_you_get_sprite_buttons = { ['item/uranium-238'] = 10 },
|
||||
base_cost = { coins = 1000, fuel = 100 },
|
||||
},
|
||||
extra_time = {
|
||||
tooltip = 'Relax at sea for an extra minute. (Increases the next destination\'s loading time.)',
|
||||
what_you_get_sprite_buttons = { ['utility/time_editor_icon'] = 60 },
|
||||
base_cost = { coins = 10, fuel = 1 },
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
||||
function Public.initialise_captains_shop()
|
||||
local memory = Memory.get_crew_memory()
|
||||
|
||||
memory.mainshop_availability_bools = {
|
||||
uranium_ore = true,
|
||||
rail_signal = true,
|
||||
artillery_shell = true,
|
||||
artillery_remote = false, --good way to get trolled by crew and remove skill
|
||||
extra_time = false,
|
||||
new_boat_sloop_with_hold = false,
|
||||
new_boat_cutter_with_hold = false,
|
||||
new_boat_cutter = false,
|
||||
buy_iron = false,
|
||||
upgrade_cannons = false,
|
||||
-- sell_iron = false,
|
||||
-- buy_fast_loader = true,
|
||||
-- sell_copper = false,
|
||||
}
|
||||
|
||||
script.raise_event(CustomEvents.enum['update_crew_fuel_gui'], {})
|
||||
end
|
||||
|
||||
-- function Public.main_shop_try_purchase(player, purchase_name)
|
||||
-- local memory = Memory.get_crew_memory()
|
||||
-- local destination = Common.current_destination()
|
||||
-- local shop_data_1 = Public.main_shop_data_1
|
||||
-- local shop_data_2 = Public.main_shop_data_2
|
||||
-- local trade_data = shop_data_1[purchase_name] or shop_data_2[purchase_name]
|
||||
-- if not trade_data then return end
|
||||
|
||||
-- local stored_fuel = memory.stored_fuel
|
||||
-- if not stored_fuel then return end
|
||||
-- -- local captain_index = memory.playerindex_captain
|
||||
-- -- if not (stored_fuel and captain_index) then return end
|
||||
-- -- local captain = game.players[captain_index]
|
||||
-- if not Common.validate_player_and_character(player) then return end
|
||||
|
||||
-- local inv = player.get_inventory(defines.inventory.character_main)
|
||||
-- if not (inv and inv.valid) then return end
|
||||
|
||||
-- local multiplier = Balance.main_shop_cost_multiplier()
|
||||
|
||||
-- -- local rate_limit_ok = not (memory.mainshop_rate_limit_ticker and memory.mainshop_rate_limit_ticker > 0)
|
||||
-- local rate_limit_ok = true
|
||||
-- local enough_fuel = true
|
||||
-- local enough_iron_plates = true
|
||||
-- local enough_coins = true
|
||||
-- local enough_copper_plates = true
|
||||
-- local coins_got
|
||||
-- local iron_plates_got
|
||||
-- local copper_plates_got
|
||||
-- -- local able_to_buy_boats = memory.boat.state == Boats.enum_state.DOCKED --disabled for now
|
||||
-- local able_to_buy_boats = false
|
||||
-- -- local able_to_buy_boats = (memory.boat.state == Boats.enum_state.DOCKED or memory.boat.state == Boats.enum_state.APPROACHING) --problem with this if you buy whilst approaching, the original one no longer moves
|
||||
|
||||
-- for k, v in pairs(trade_data.base_cost) do
|
||||
-- if k == 'fuel' then
|
||||
-- enough_fuel = (stored_fuel >= v * multiplier)
|
||||
-- elseif k == 'coins' then
|
||||
-- coins_got = inv.get_item_count('coin')
|
||||
-- enough_coins = coins_got >= v * multiplier
|
||||
-- elseif k == 'iron_plates' then
|
||||
-- iron_plates_got = inv.get_item_count('iron-plate')
|
||||
-- enough_iron_plates = iron_plates_got >= v * multiplier
|
||||
-- elseif k == 'copper_plates' then
|
||||
-- copper_plates_got = inv.get_item_count('copper-plate')
|
||||
-- enough_copper_plates = copper_plates_got >= v * multiplier
|
||||
-- end
|
||||
-- end
|
||||
|
||||
-- local can_buy = rate_limit_ok and enough_coins and enough_fuel and enough_iron_plates and enough_copper_plates
|
||||
|
||||
-- if purchase_name == 'new_boat_sloop_with_hold' or purchase_name == 'new_boat_cutter_with_hold' or purchase_name == 'new_boat_cutter' then can_buy = can_buy and able_to_buy_boats end
|
||||
|
||||
-- -- @TODO: prevent people from buying things whilst marooned
|
||||
|
||||
-- if can_buy then
|
||||
-- for k, v in pairs(trade_data.base_cost) do
|
||||
-- if k == 'fuel' then
|
||||
-- memory.stored_fuel = memory.stored_fuel - v * multiplier
|
||||
-- elseif k == 'coins' then
|
||||
-- inv.remove{name="coin", count=v * multiplier}
|
||||
-- elseif k == 'iron_plates' then
|
||||
-- inv.remove{name="iron-plate", count=v * multiplier}
|
||||
-- elseif k == 'copper_plates' then
|
||||
-- inv.remove{name="copper-plate", count=v * multiplier}
|
||||
-- end
|
||||
-- end
|
||||
|
||||
-- local force = memory.force
|
||||
-- if not (force and force.valid) then return end
|
||||
|
||||
-- local gotamount
|
||||
-- if purchase_name == 'uranium_ore' then
|
||||
-- gotamount = trade_data.what_you_get_sprite_buttons['item/uranium-238']
|
||||
-- Common.give(player, {{name = 'uranium-238', count = gotamount}})
|
||||
-- Common.notify_force_light(force,string.format('%s is buying green rocks...', player.name))
|
||||
|
||||
-- elseif purchase_name == 'extra_time' then
|
||||
-- local success = Crew.try_add_extra_time_at_sea(60 * 60)
|
||||
-- if success then
|
||||
-- Common.notify_force_light(force,string.format('%s is buying extra time at sea...', player.name))
|
||||
-- else
|
||||
-- Common.notify_player_error(player, string.format('Purchase error: Can\'t buy more time than this.', player.name))
|
||||
-- -- refund:
|
||||
-- memory.stored_fuel = memory.stored_fuel + trade_data.base_cost.fuel * multiplier
|
||||
-- end
|
||||
|
||||
-- elseif purchase_name == 'rail_signal' then
|
||||
-- gotamount = trade_data.what_you_get_sprite_buttons['item/rail-signal']
|
||||
-- Common.give(player, {{name = 'rail-signal', count = gotamount}})
|
||||
-- Common.notify_force_light(force,string.format('%s is buying signals...', player.name))
|
||||
|
||||
-- elseif purchase_name == 'artillery_shell' then
|
||||
-- gotamount = trade_data.what_you_get_sprite_buttons['item/artillery-shell']
|
||||
-- Common.give(player, {{name = 'artillery-shell', count = gotamount}})
|
||||
-- Common.notify_force_light(force,string.format('%s is buying cannon shells...', player.name))
|
||||
|
||||
-- elseif purchase_name == 'artillery_remote' then
|
||||
-- gotamount = trade_data.what_you_get_sprite_buttons['item/artillery-targeting-remote']
|
||||
-- Common.give(player, {{name = 'artillery-targeting-remote', count = gotamount}})
|
||||
-- Common.notify_force_light(force,string.format('%s is buying an artillery targeting remote...', player.name))
|
||||
|
||||
-- elseif purchase_name == 'new_boat_cutter' or purchase_name == 'new_boat_cutter_with_hold' or purchase_name == 'new_boat_sloop_with_hold' then
|
||||
-- Dock.execute_boat_purchase()
|
||||
-- Common.notify_force(force,string.format('[font=heading-1]%s bought a %s.[/font]', player.name, Boats[Common.current_destination().static_params.boat_for_sale_type].Data.display_name))
|
||||
|
||||
-- elseif purchase_name == 'repair_cannons' then
|
||||
-- -- heal all cannons:
|
||||
-- local cannons = game.surfaces[destination.surface_name].find_entities_filtered({type = 'artillery-turret'})
|
||||
-- for _, c in pairs(cannons) do
|
||||
-- local unit_number = c.unit_number
|
||||
|
||||
-- local healthbar = memory.healthbars[unit_number]
|
||||
-- if _DEBUG then game.print(unit_number) end
|
||||
-- if healthbar then
|
||||
-- healthbar.health = healthbar.max_health
|
||||
-- Public.update_healthbar_rendering(healthbar, healthbar.max_health)
|
||||
-- end
|
||||
-- end
|
||||
-- Common.notify_force(force,string.format('[font=heading-1]%s repaired the cannons.[/font]', player.name))
|
||||
-- memory.mainshop_availability_bools[purchase_name] = false
|
||||
|
||||
-- elseif purchase_name == Upgrades.enum.MORE_POWER then
|
||||
-- Upgrades.execute_upgade(Upgrades.enum.MORE_POWER)
|
||||
-- memory.mainshop_availability_bools[purchase_name] = false
|
||||
|
||||
-- elseif purchase_name == Upgrades.enum.EXTRA_HOLD then
|
||||
-- Upgrades.execute_upgade(Upgrades.enum.EXTRA_HOLD)
|
||||
-- memory.mainshop_availability_bools[purchase_name] = false
|
||||
|
||||
-- elseif purchase_name == Upgrades.enum.UNLOCK_MERCHANTS then
|
||||
-- Upgrades.execute_upgade(Upgrades.enum.UNLOCK_MERCHANTS)
|
||||
-- memory.mainshop_availability_bools[purchase_name] = false
|
||||
|
||||
-- elseif purchase_name == Upgrades.enum.ROCKETS_FOR_SALE then
|
||||
-- Upgrades.execute_upgade(Upgrades.enum.ROCKETS_FOR_SALE)
|
||||
-- memory.mainshop_availability_bools[purchase_name] = false
|
||||
|
||||
-- elseif purchase_name == 'sell_iron' then
|
||||
-- gotamount = trade_data.what_you_get_sprite_buttons['item/coal']
|
||||
-- Common.give(player, {{name = 'fuel', count = gotamount}})
|
||||
-- Common.notify_force_light(force,string.format('%s is selling iron...', player.name))
|
||||
|
||||
-- elseif purchase_name == 'buy_iron' then
|
||||
-- gotamount = trade_data.what_you_get_sprite_buttons['item/iron-plate']
|
||||
-- Common.give_items_to_crew{{name = 'iron-plate', count = gotamount}}
|
||||
-- Common.notify_force_light(force,string.format('%s is buying iron...', player.name))
|
||||
|
||||
-- elseif purchase_name == 'buy_copper' then
|
||||
-- gotamount = trade_data.what_you_get_sprite_buttons['item/copper-plate']
|
||||
-- Common.give_items_to_crew{{name = 'copper-plate', count = gotamount}}
|
||||
-- Common.notify_force_light(force,string.format('%s is buying copper...', player.name))
|
||||
|
||||
-- -- elseif name == 'buy_fast_loader' then
|
||||
-- -- gotamount = trade_data.what_you_get_sprite_buttons['item/fast-loader']
|
||||
-- -- Common.give(player, {{name = 'fast-loader', count = gotamount}})
|
||||
-- -- Common.notify_force_light(force,string.format('%s bought a fast loader...', player.name))
|
||||
|
||||
-- elseif purchase_name == 'sell_copper' then
|
||||
-- gotamount = trade_data.what_you_get_sprite_buttons['item/coal']
|
||||
-- Common.give(player, {{name = 'fuel', count = gotamount}})
|
||||
-- Common.notify_force_light(force,string.format('%s is selling copper...', player.name))
|
||||
|
||||
-- end
|
||||
|
||||
-- script.raise_event(CustomEvents.enum['update_crew_fuel_gui'], {})
|
||||
|
||||
-- -- memory.mainshop_rate_limit_ticker = Common.mainshop_rate_limit_ticks
|
||||
-- else
|
||||
-- -- play sound?
|
||||
-- if rate_limit_ok == false then
|
||||
-- Common.notify_player_error(player, 'Purchase error: Shop rate limit exceeded.')
|
||||
-- end
|
||||
-- if enough_fuel == false then
|
||||
-- Common.notify_player_error(player, 'Purchase error: Not enough stored fuel.')
|
||||
-- end
|
||||
-- if enough_coins == false then
|
||||
-- Common.notify_player_error(player, 'Purchase error: Not enough doubloons.')
|
||||
-- end
|
||||
-- if enough_iron_plates == false then
|
||||
-- Common.notify_player_error(player, 'Purchase error: Not enough iron plates.')
|
||||
-- end
|
||||
-- if enough_copper_plates == false then
|
||||
-- Common.notify_player_error(player, 'Purchase error: Not enough copper plates.')
|
||||
-- end
|
||||
|
||||
-- if (purchase_name == 'new_boat_cutter' or purchase_name == 'new_boat_sloop_with_hold' or purchase_name == 'new_boat_cutter_with_hold') and (not able_to_buy_boats) then
|
||||
-- Common.notify_player_error(player, 'Purchase error: Not able to purchase ships right now.')
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
|
||||
return Public
|
@ -13,7 +13,7 @@ local Utils = require 'maps.pirates.utils_local'
|
||||
local Math = require 'maps.pirates.math'
|
||||
local _inspect = require 'utils.inspect'.inspect
|
||||
|
||||
-- local Upgrades = require 'maps.pirates.boat_upgrades'
|
||||
-- local Upgrades = require 'maps.pirates.shop.boat_upgrades'
|
||||
|
||||
local Public = {}
|
||||
|
||||
@ -26,7 +26,7 @@ Public.offers_loaders = {
|
||||
}
|
||||
|
||||
Public.offers_rockets = {
|
||||
{ price = { { 'coin', 250 }, { 'electronic-circuit', 80 } }, offer = { type = 'give-item', item = 'rocket-launcher', count = 1 } },
|
||||
{ price = { { 'coin', 250 }, { 'electronic-circuit', 80 } }, offer = { type = 'give-item', item = 'rocket-launcher', count = 1 } },
|
||||
{ price = { { 'coin', 1200 }, { 'explosives', 20 }, { 'electronic-circuit', 20 } }, offer = { type = 'give-item', item = 'rocket', count = 20 } },
|
||||
}
|
||||
|
||||
@ -34,19 +34,19 @@ Public.offers_default = {
|
||||
{ price = { { 'coin', 1500 } }, offer = { type = 'give-item', item = 'copper-plate', count = 300 } },
|
||||
{ price = { { 'coin', 1500 } }, offer = { type = 'give-item', item = 'iron-plate', count = 300 } },
|
||||
{ price = { { 'coin', 1000 } }, offer = { type = 'give-item', item = 'piercing-rounds-magazine', count = 60 } },
|
||||
{ price = { { 'coin', 900 } }, offer = { type = 'give-item', item = 'heavy-armor', count = 1 } },
|
||||
{ price = { { 'coin', 900 } }, offer = { type = 'give-item', item = 'heavy-armor', count = 1 } },
|
||||
{ price = { { 'coin', 1000 } }, offer = { type = 'give-item', item = 'grenade', count = 30 } },
|
||||
{ price = { { 'coin', 1200 } }, offer = { type = 'give-item', item = 'defender-capsule', count = 15 } },
|
||||
{ price = { { 'coin', 1500 } }, offer = { type = 'give-item', item = 'distractor-capsule', count = 15 } },
|
||||
{ price = { { 'coin', 1000 } }, offer = { type = 'give-item', item = 'slowdown-capsule', count = 25 } },
|
||||
{ price = { { 'coin', 1000 } }, offer = { type = 'give-item', item = 'poison-capsule', count = 15 } },
|
||||
{ price = { { 'coin', 1400 } }, offer = { type = 'give-item', item = 'gate', count = 25 } },
|
||||
{ price = { { 'coin', 800 } }, offer = { type = 'give-item', item = 'storage-tank', count = 20 } },
|
||||
{ price = { { 'coin', 600 } }, offer = { type = 'give-item', item = 'big-electric-pole', count = 15 } },
|
||||
{ price = { { 'coin', 850 } }, offer = { type = 'give-item', item = 'stack-inserter', count = 7 } },
|
||||
{ price = { { 'coin', 900 } }, offer = { type = 'give-item', item = 'piercing-shotgun-shell', count = 15 } },
|
||||
{ price = { { 'coin', 960 } }, offer = { type = 'give-item', item = 'flamethrower', count = 1 } },
|
||||
{ price = { { 'coin', 980 } }, offer = { type = 'give-item', item = 'flamethrower', count = 1 } },
|
||||
{ price = { { 'coin', 800 } }, offer = { type = 'give-item', item = 'storage-tank', count = 20 } },
|
||||
{ price = { { 'coin', 600 } }, offer = { type = 'give-item', item = 'big-electric-pole', count = 15 } },
|
||||
{ price = { { 'coin', 850 } }, offer = { type = 'give-item', item = 'stack-inserter', count = 7 } },
|
||||
{ price = { { 'coin', 900 } }, offer = { type = 'give-item', item = 'piercing-shotgun-shell', count = 15 } },
|
||||
{ price = { { 'coin', 960 } }, offer = { type = 'give-item', item = 'flamethrower', count = 1 } },
|
||||
{ price = { { 'coin', 980 } }, offer = { type = 'give-item', item = 'flamethrower', count = 1 } },
|
||||
{ price = { { 'coin', 1700 } }, offer = { type = 'give-item', item = 'flamethrower-ammo', count = 15 } },
|
||||
{ price = { { 'coin', 1800 } }, offer = { type = 'give-item', item = 'flamethrower-ammo', count = 20 } },
|
||||
{ price = { { 'coin', 1800 } }, offer = { type = 'give-item', item = 'flying-robot-frame', count = 5 } },
|
||||
|
@ -12,10 +12,10 @@ local Balance = require 'maps.pirates.balance'
|
||||
local Common = require 'maps.pirates.common'
|
||||
local Utils = require 'maps.pirates.utils_local'
|
||||
local Math = require 'maps.pirates.math'
|
||||
local Upgrades = require 'maps.pirates.boat_upgrades'
|
||||
local Upgrades = require 'maps.pirates.shop.boat_upgrades'
|
||||
local _inspect = require 'utils.inspect'.inspect
|
||||
|
||||
-- local Upgrades = require 'maps.pirates.boat_upgrades'
|
||||
-- local Upgrades = require 'maps.pirates.shop.boat_upgrades'
|
||||
|
||||
local Public = {}
|
||||
|
||||
@ -23,67 +23,67 @@ local Public = {}
|
||||
|
||||
|
||||
Public.market_barters = {
|
||||
{ price = { { 'iron-plate', 300 } }, offer = { type = 'give-item', item = 'copper-plate', count = 500 } },
|
||||
{ price = { { 'iron-plate', 300 } }, offer = { type = 'give-item', item = 'copper-plate', count = 500 } },
|
||||
{ price = { { 'copper-plate', 300 } }, offer = { type = 'give-item', item = 'iron-plate', count = 500 } },
|
||||
--repeating these:
|
||||
{ price = { { 'iron-plate', 300 } }, offer = { type = 'give-item', item = 'copper-plate', count = 500 } },
|
||||
{ price = { { 'iron-plate', 300 } }, offer = { type = 'give-item', item = 'copper-plate', count = 500 } },
|
||||
{ price = { { 'copper-plate', 300 } }, offer = { type = 'give-item', item = 'iron-plate', count = 500 } },
|
||||
|
||||
{ price = { { 'steel-plate', 40 } }, offer = { type = 'give-item', item = 'copper-plate', count = 500 } },
|
||||
{ price = { { 'steel-plate', 40 } }, offer = { type = 'give-item', item = 'iron-plate', count = 500 } },
|
||||
{ price = { { 'raw-fish', 80 } }, offer = { type = 'give-item', item = 'coal', count = 500 } },
|
||||
{ price = { { 'raw-fish', 80 } }, offer = { type = 'give-item', item = 'iron-plate', count = 750 } },
|
||||
{ price = { { 'raw-fish', 80 } }, offer = { type = 'give-item', item = 'copper-plate', count = 750 } },
|
||||
{ price = { { 'raw-fish', 80 } }, offer = { type = 'give-item', item = 'steel-plate', count = 150 } },
|
||||
{ price = { { 'wood', 200 } }, offer = { type = 'give-item', item = 'coin', count = 360 } },
|
||||
{ price = { { 'wood', 150 } }, offer = { type = 'give-item', item = 'coal', count = 150 } },
|
||||
{ price = { { 'stone-brick', 200 } }, offer = { type = 'give-item', item = 'iron-plate', count = 500 } },
|
||||
{ price = { { 'stone-brick', 200 } }, offer = { type = 'give-item', item = 'copper-plate', count = 500 } },
|
||||
{ price = { { 'stone-brick', 200 } }, offer = { type = 'give-item', item = 'steel-plate', count = 160 } },
|
||||
{ price = { { 'steel-plate', 40 } }, offer = { type = 'give-item', item = 'copper-plate', count = 500 } },
|
||||
{ price = { { 'steel-plate', 40 } }, offer = { type = 'give-item', item = 'iron-plate', count = 500 } },
|
||||
{ price = { { 'raw-fish', 80 } }, offer = { type = 'give-item', item = 'coal', count = 500 } },
|
||||
{ price = { { 'raw-fish', 80 } }, offer = { type = 'give-item', item = 'iron-plate', count = 750 } },
|
||||
{ price = { { 'raw-fish', 80 } }, offer = { type = 'give-item', item = 'copper-plate', count = 750 } },
|
||||
{ price = { { 'raw-fish', 80 } }, offer = { type = 'give-item', item = 'steel-plate', count = 150 } },
|
||||
{ price = { { 'wood', 200 } }, offer = { type = 'give-item', item = 'coin', count = 360 } },
|
||||
{ price = { { 'wood', 150 } }, offer = { type = 'give-item', item = 'coal', count = 150 } },
|
||||
{ price = { { 'stone-brick', 200 } }, offer = { type = 'give-item', item = 'iron-plate', count = 500 } },
|
||||
{ price = { { 'stone-brick', 200 } }, offer = { type = 'give-item', item = 'copper-plate', count = 500 } },
|
||||
{ price = { { 'stone-brick', 200 } }, offer = { type = 'give-item', item = 'steel-plate', count = 160 } },
|
||||
}
|
||||
|
||||
-- permanent means you can buy more than once (but only some items???)
|
||||
Public.market_permanent_offers = {
|
||||
{ price = { { 'pistol', 1 } }, offer = { type = 'give-item', item = 'coin', count = Balance.coin_sell_amount } },
|
||||
{ price = { { 'coin', 3600 } }, offer = { type = 'give-item', item = 'iron-ore', count = 800 } },
|
||||
{ price = { { 'coin', 3600 } }, offer = { type = 'give-item', item = 'copper-ore', count = 800 } },
|
||||
{ price = { { 'coin', 4200 } }, offer = { type = 'give-item', item = 'crude-oil-barrel', count = 100 } },
|
||||
{ price = { { 'coin', 3600 } }, offer = { type = 'give-item', item = 'fast-loader', count = 1 } },
|
||||
{ price = { { 'coin', 6200 } }, offer = { type = 'give-item', item = 'beacon', count = 2 } },
|
||||
{ price = { { 'coin', 4200 } }, offer = { type = 'give-item', item = 'speed-module-2', count = 2 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'explosives', count = 50 } },
|
||||
{ price = { { 'pistol', 1 } }, offer = { type = 'give-item', item = 'coin', count = Balance.coin_sell_amount } },
|
||||
{ price = { { 'coin', 3600 } }, offer = { type = 'give-item', item = 'iron-ore', count = 800 } },
|
||||
{ price = { { 'coin', 3600 } }, offer = { type = 'give-item', item = 'copper-ore', count = 800 } },
|
||||
{ price = { { 'coin', 4200 } }, offer = { type = 'give-item', item = 'crude-oil-barrel', count = 100 } },
|
||||
{ price = { { 'coin', 3600 } }, offer = { type = 'give-item', item = 'fast-loader', count = 1 } },
|
||||
{ price = { { 'coin', 6200 } }, offer = { type = 'give-item', item = 'beacon', count = 2 } },
|
||||
{ price = { { 'coin', 4200 } }, offer = { type = 'give-item', item = 'speed-module-2', count = 2 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'explosives', count = 50 } },
|
||||
{ price = { { 'coin', 6500 }, { 'steel-plate', 25 }, { 'explosives', 50 } }, offer = { type = 'give-item', item = 'land-mine', count = 100 } },
|
||||
-- {price = {{'coin', 30000}}, offer = {type = 'give-item', item = 'artillery-targeting-remote', count = 1}},
|
||||
}
|
||||
|
||||
-- cheap but one-off
|
||||
Public.market_sales = {
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'coal', count = 900 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'piercing-rounds-magazine', count = 75 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'uranium-rounds-magazine', count = 20 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'piercing-shotgun-shell', count = 50 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'raw-fish', count = 300 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'laser-turret', count = 1 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'vehicle-machine-gun', count = 2 } },
|
||||
{ price = { { 'coin', 6000 } }, offer = { type = 'give-item', item = 'modular-armor', count = 1 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'distractor-capsule', count = 20 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'poison-capsule', count = 20 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'slowdown-capsule', count = 20 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'coin', count = 6000 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'roboport', count = 1 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'construction-robot', count = 10 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'logistic-chest-passive-provider', count = 2 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'logistic-robot', count = 2 } },
|
||||
{ price = { { 'transport-belt', 100 }, { 'coin', 800 } }, offer = { type = 'give-item', item = 'fast-transport-belt', count = 100 } },
|
||||
{ price = { { 'fast-transport-belt', 100 }, { 'coin', 2500 } }, offer = { type = 'give-item', item = 'express-transport-belt', count = 100 } },
|
||||
{ price = { { 'underground-belt', 10 }, { 'coin', 800 } }, offer = { type = 'give-item', item = 'fast-underground-belt', count = 10 } },
|
||||
{ price = { { 'fast-underground-belt', 10 }, { 'coin', 2500 } }, offer = { type = 'give-item', item = 'express-underground-belt', count = 10 } },
|
||||
{ price = { { 'splitter', 10 }, { 'coin', 800 } }, offer = { type = 'give-item', item = 'fast-splitter', count = 10 } },
|
||||
{ price = { { 'fast-splitter', 10 }, { 'coin', 2500 } }, offer = { type = 'give-item', item = 'express-splitter', count = 10 } },
|
||||
{ price = { { 'pistol', 1 }, { 'coin', 300 } }, offer = { type = 'give-item', item = 'submachine-gun', count = 1 } },
|
||||
{ price = { { 'submachine-gun', 1 }, { 'coin', 1000 } }, offer = { type = 'give-item', item = 'vehicle-machine-gun', count = 1 } },
|
||||
{ price = { { 'shotgun', 1 }, { 'coin', 3500 } }, offer = { type = 'give-item', item = 'combat-shotgun', count = 1 } },
|
||||
{ price = { { 'shotgun-shell', 100 }, { 'coin', 2000 } }, offer = { type = 'give-item', item = 'piercing-shotgun-shell', count = 100 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'coal', count = 900 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'piercing-rounds-magazine', count = 75 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'uranium-rounds-magazine', count = 20 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'piercing-shotgun-shell', count = 50 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'raw-fish', count = 300 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'laser-turret', count = 1 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'vehicle-machine-gun', count = 2 } },
|
||||
{ price = { { 'coin', 6000 } }, offer = { type = 'give-item', item = 'modular-armor', count = 1 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'distractor-capsule', count = 20 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'poison-capsule', count = 20 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'slowdown-capsule', count = 20 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'coin', count = 6000 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'roboport', count = 1 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'construction-robot', count = 10 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'logistic-chest-passive-provider', count = 2 } },
|
||||
{ price = { { 'coin', 3000 } }, offer = { type = 'give-item', item = 'logistic-robot', count = 2 } },
|
||||
{ price = { { 'transport-belt', 100 }, { 'coin', 800 } }, offer = { type = 'give-item', item = 'fast-transport-belt', count = 100 } },
|
||||
{ price = { { 'fast-transport-belt', 100 }, { 'coin', 2500 } }, offer = { type = 'give-item', item = 'express-transport-belt', count = 100 } },
|
||||
{ price = { { 'underground-belt', 10 }, { 'coin', 800 } }, offer = { type = 'give-item', item = 'fast-underground-belt', count = 10 } },
|
||||
{ price = { { 'fast-underground-belt', 10 }, { 'coin', 2500 } }, offer = { type = 'give-item', item = 'express-underground-belt', count = 10 } },
|
||||
{ price = { { 'splitter', 10 }, { 'coin', 800 } }, offer = { type = 'give-item', item = 'fast-splitter', count = 10 } },
|
||||
{ price = { { 'fast-splitter', 10 }, { 'coin', 2500 } }, offer = { type = 'give-item', item = 'express-splitter', count = 10 } },
|
||||
{ price = { { 'pistol', 1 }, { 'coin', 300 } }, offer = { type = 'give-item', item = 'submachine-gun', count = 1 } },
|
||||
{ price = { { 'submachine-gun', 1 }, { 'coin', 1000 } }, offer = { type = 'give-item', item = 'vehicle-machine-gun', count = 1 } },
|
||||
{ price = { { 'shotgun', 1 }, { 'coin', 3500 } }, offer = { type = 'give-item', item = 'combat-shotgun', count = 1 } },
|
||||
{ price = { { 'shotgun-shell', 100 }, { 'coin', 2000 } }, offer = { type = 'give-item', item = 'piercing-shotgun-shell', count = 100 } },
|
||||
{ price = { { 'piercing-rounds-magazine', 100 }, { 'coin', 3500 } }, offer = { type = 'give-item', item = 'uranium-rounds-magazine', count = 100 } },
|
||||
}
|
||||
|
||||
@ -162,7 +162,7 @@ function Public.create_dock_markets(surface, p)
|
||||
|
||||
local upgrade_for_sale = Common.current_destination().static_params.upgrade_for_sale
|
||||
if upgrade_for_sale then
|
||||
e.add_market_item(Upgrades.market_offer_form[upgrade_for_sale])
|
||||
e.add_market_item(Upgrades.upgrades_data[upgrade_for_sale].market_item)
|
||||
end
|
||||
|
||||
destination.dynamic_data.dock_captains_market = e
|
||||
|
@ -14,12 +14,11 @@ local Roles = require 'maps.pirates.roles.roles'
|
||||
local Math = require 'maps.pirates.math'
|
||||
local _inspect = require 'utils.inspect'.inspect
|
||||
local SurfacesCommon = require 'maps.pirates.surfaces.common'
|
||||
local Upgrades = require 'maps.pirates.boat_upgrades'
|
||||
local Upgrades = require 'maps.pirates.shop.boat_upgrades'
|
||||
local Cabin = require 'maps.pirates.surfaces.cabin'
|
||||
-- local Upgrades = require 'maps.pirates.boat_upgrades'
|
||||
-- local Upgrades = require 'maps.pirates.shop.boat_upgrades'
|
||||
|
||||
local Public = {}
|
||||
Public.Captains = require 'maps.pirates.shop.captains'
|
||||
Public.Covered = require 'maps.pirates.shop.covered'
|
||||
Public.Merchants = require 'maps.pirates.shop.merchants'
|
||||
Public.Minimarket = require 'maps.pirates.shop.dock'
|
||||
|
@ -75,8 +75,6 @@ function Public.execute_boat_purchase()
|
||||
-- memory.mainshop_availability_bools.new_boat_cutter_with_hold = false
|
||||
-- memory.mainshop_availability_bools.new_boat_sloop_with_hold = false
|
||||
-- memory.mainshop_availability_bools.new_boat_cutter = false
|
||||
|
||||
script.raise_event(CustomEvents.enum['update_crew_fuel_gui'], {})
|
||||
end
|
||||
|
||||
function Public.place_dock_jetty_and_boats()
|
||||
|
Loading…
x
Reference in New Issue
Block a user