1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-01-10 00:43:27 +02:00
ComfyFactorio/maps/pirates/gui/evo.lua

143 lines
4.7 KiB
Lua
Raw Normal View History

2021-10-13 10:21:53 +02:00
local Common = require 'maps.pirates.common'
local Balance = require 'maps.pirates.balance'
2022-03-19 23:20:55 +02:00
-- local Utils = require 'maps.pirates.utils_local'
-- local Math = require 'maps.pirates.math'
local _inspect = require 'utils.inspect'.inspect
2021-10-13 10:21:53 +02:00
local Boats = require 'maps.pirates.structures.boats.boats'
local Memory = require 'maps.pirates.memory'
local Kraken = require 'maps.pirates.surfaces.sea.kraken'
local Public = {}
2022-03-19 23:20:55 +02:00
-- local GuiCommon = require 'maps.pirates.gui.common'
2021-10-13 10:21:53 +02:00
-- local button_sprites = {
-- ['small-biter'] = 0,
-- ['medium-biter'] = 0.2,
-- ['small-spitter'] = 0.25,
-- ['medium-spitter'] = 0.4,
-- ['big-spitter'] = 0.5,
-- ['big-biter'] = 0.501,
-- ['behemoth-spitter'] = 0.9,
-- ['behemoth-biter'] = 0.901
-- }
-- local function get_alien_name(evolution_factor)
-- local last_match = 'fish'
-- for name, alien_threshold in pairs(button_sprites) do
-- if evolution_factor == alien_threshold then
-- return name
-- end
-- -- next alien evolution_factor isn't reached
-- if alien_threshold > evolution_factor then
-- return last_match
-- end
-- -- surpassed this alien evolution_factor
-- if alien_threshold < evolution_factor then
-- last_match = name
-- end
-- end
-- return last_match
-- end
2022-03-13 03:44:32 +02:00
2022-03-19 23:20:55 +02:00
-- function Public.regular_update(player)
2022-03-13 03:44:32 +02:00
2022-03-19 23:20:55 +02:00
-- end
2022-03-13 03:44:32 +02:00
function Public.full_update(player)
2022-03-20 13:41:23 +02:00
if Public.regular_update then Public.regular_update(player) end
2022-03-19 23:20:55 +02:00
2021-10-13 10:21:53 +02:00
local memory = Memory.get_crew_memory()
local pirates_flow = player.gui.top
local button = pirates_flow.evo_piratebutton_frame.evo_piratebutton
if button and button.valid then
2022-03-11 18:46:02 +02:00
local evo = memory.evolution_factor or 0
-- local evo = Math.floor(evo * 1000) * 0.001
2021-10-13 10:21:53 +02:00
-- local current_alien = get_alien_name(evolution_factor)
-- local sprite = 'entity/' .. current_alien
-- if evolution_factor == 0 or (memory.boat and (memory.boat.state == Boats.enum_state.ATSEA_SAILING or memory.boat.state == Boats.enum_state.ATSEA_LOADING_MAP)) then
-- button.number = 0
-- button.tooltip = 'Local biter evolution\n\n0'
-- else
2022-03-11 18:46:02 +02:00
local destination = Common.current_destination()
2022-03-19 23:20:55 +02:00
local evolution_leagues
local evolution_kraken
local evolution_time
local evolution_silo
local evolution_nests
local evolution_sandwurms
local evolution_total
2022-03-17 03:40:18 +02:00
local types = {'leagues', 'kraken', 'time', 'silo', 'nests', 'sandwurms'}
2022-03-11 18:46:02 +02:00
if memory.boat and memory.boat.state and (memory.boat.state == Boats.enum_state.ATSEA_SAILING or memory.boat.state == Boats.enum_state.ATSEA_LOADING_MAP) then
2022-03-17 03:40:18 +02:00
evolution_leagues = evo - (memory.kraken_evo or 0)
2022-03-11 18:46:02 +02:00
local krakens = false
if memory.active_sea_enemies and memory.active_sea_enemies.krakens then
for i = 1, Kraken.kraken_slots do
if memory.active_sea_enemies.krakens[i] then krakens = true break end
2021-10-13 10:21:53 +02:00
end
2022-03-11 18:46:02 +02:00
end
if krakens then
2022-03-17 03:40:18 +02:00
evolution_kraken = Balance.kraken_spawns_base_extra_evo + (memory.kraken_evo or 0)
evolution_total = evolution_leagues + Balance.kraken_spawns_base_extra_evo
2021-10-13 10:21:53 +02:00
else
2022-03-17 03:40:18 +02:00
evolution_total = evolution_leagues
2021-10-13 10:21:53 +02:00
end
2022-03-11 18:46:02 +02:00
else
2022-03-13 03:44:32 +02:00
if destination and destination.dynamic_data then
2022-03-17 03:40:18 +02:00
evolution_leagues = destination.dynamic_data.evolution_accrued_leagues
evolution_time = destination.dynamic_data.evolution_accrued_time
evolution_nests = destination.dynamic_data.evolution_accrued_nests
evolution_silo = destination.dynamic_data.evolution_accrued_silo
evolution_sandwurms = destination.dynamic_data.evolution_accrued_sandwurms
2022-03-13 03:44:32 +02:00
end
2022-03-17 03:40:18 +02:00
evolution_total = (evolution_leagues or 0) + (evolution_time or 0) + (evolution_nests or 0) + (evolution_silo or 0) + (evolution_sandwurms or 0)
2022-03-11 18:46:02 +02:00
end
2022-03-17 03:40:18 +02:00
local str = {'',{'pirates.gui_evo_tooltip_1', string.format('%.2f\n', evolution_total)}}
2022-03-17 03:40:18 +02:00
for _, type in ipairs(types) do
if type == 'leagues' then
if evolution_leagues then
str[#str+1] = {'','\n',{'pirates.gui_evo_tooltip_2', string.format('%.2f', evolution_leagues)}}
2022-03-17 03:40:18 +02:00
end
elseif type == 'kraken' then
if evolution_kraken then
str[#str+1] = {'','\n',{'pirates.gui_evo_tooltip_3', string.format('%.2f', evolution_kraken)}}
2022-03-17 03:40:18 +02:00
end
elseif type == 'time' then
if evolution_time then
str[#str+1] = {'','\n',{'pirates.gui_evo_tooltip_4', string.format('%.2f', evolution_time)}}
2022-03-17 03:40:18 +02:00
end
elseif type == 'silo' then
if evolution_silo then
str[#str+1] = {'','\n',{'pirates.gui_evo_tooltip_5', string.format('%.2f', evolution_silo)}}
2022-03-17 03:40:18 +02:00
end
elseif type == 'nests' then
if evolution_nests then
str[#str+1] = {'','\n',{'pirates.gui_evo_tooltip_6', string.format('%.2f', evolution_nests)}}
2022-03-17 03:40:18 +02:00
end
elseif type == 'sandwurms' then
if evolution_sandwurms then
str[#str+1] = {'','\n',{'pirates.gui_evo_tooltip_7', string.format('%.2f', evolution_sandwurms)}}
2022-03-17 03:40:18 +02:00
end
end
end
button.number = evolution_total
button.tooltip = str
2021-10-13 10:21:53 +02:00
end
end
return Public