This commit is contained in:
2025-02-08 00:01:08 +09:00
parent c6d32f07b5
commit 6318425f80

View File

@@ -11,6 +11,10 @@ local vlayer = require("modules.exp_legacy.modules.control.vlayer")
local format_number = require("util").format_number --- @dep util
local bonus_container
local bonus_score = {
["current"] = 0,
["limit"] = config.pts.base,
}
--- @param player LuaPlayer
--- @param container LuaGuiElement?
@@ -71,7 +75,7 @@ end
local function max_bonus_pts_update(player)
local frame = Gui.get_left_element(player, bonus_container)
local disp = frame.container["bonus_st_2"].disp.table
disp[bonus_gui_control_pts_a_count.name].caption = math.floor(config.pts.base * (1 + config.pts.increase_percentage_per_role_level * (Roles.get_player_highest_role(player).index - Roles.get_role_by_name(config.pts.role_name).index)))
disp[bonus_gui_control_pts_count.name].caption = math.floor(config.pts.base * (1 + config.pts.increase_percentage_per_role_level * (Roles.get_player_highest_role(player).index - Roles.get_role_by_name(config.pts.role_name).index)))
end
]]
@@ -111,8 +115,8 @@ local function apply_periodic_bonus(player)
end
--- Control label for the bonus points available
-- @element bonus_gui_control_pts_a
local bonus_gui_control_pts_a = Gui.element("bonus_gui_control_pts_a")
-- @element bonus_gui_control_pts
local bonus_gui_control_pts = Gui.element("bonus_gui_control_pts")
:draw{
type = "label",
name = Gui.property_from_name,
@@ -122,58 +126,16 @@ local bonus_gui_control_pts_a = Gui.element("bonus_gui_control_pts_a")
width = config.gui_display_width["half"],
}
local bonus_gui_control_pts_a_count = Gui.element("bonus_gui_control_pts_a_count")
local bonus_gui_control_pts_count = Gui.element("vlayer_gui_display_item_solar_count")
:draw{
type = "label",
type = "progressbar",
name = Gui.property_from_name,
caption = config.pts.base,
style = "heading_2_label",
}:style{
width = config.gui_display_width["half"],
}
--- Control label for the bonus points needed
-- @element bonus_gui_control_pts_n
local bonus_gui_control_pts_n = Gui.element("bonus_gui_control_pts_n")
:draw{
type = "label",
name = Gui.property_from_name,
caption = { "bonus.control-pts-n" },
style = "heading_2_label",
}:style{
width = config.gui_display_width["half"],
}
local bonus_gui_control_pts_n_count = Gui.element("bonus_gui_control_pts_n_count")
:draw{
type = "label",
name = Gui.property_from_name,
caption = "0",
style = "heading_2_label",
}:style{
width = config.gui_display_width["half"],
}
--- Control label for the bonus points remaining
-- @element bonus_gui_control_pts_r
local bonus_gui_control_pts_r = Gui.element("bonus_gui_control_pts_r")
:draw{
type = "label",
name = Gui.property_from_name,
caption = { "bonus.control-pts-r" },
style = "heading_2_label",
}:style{
width = config.gui_display_width["half"],
}
local bonus_gui_control_pts_r_count = Gui.element("bonus_gui_control_pts_r_count")
:draw{
type = "label",
name = Gui.property_from_name,
caption = "0",
style = "heading_2_label",
caption = bonus_score["current"] .. " / " .. bonus_score["limit"],
value = 0,
style = "electric_satisfaction_statistics_progressbar",
}:style{
width = config.gui_display_width["half"],
font = "heading-2",
}
--- A button used for pts calculations
@@ -205,8 +167,7 @@ local bonus_gui_control_reset = Gui.element("bonus_gui_control_reset")
disp[slider.tags.counter].caption = format_number(slider.slider_value, false)
local r = bonus_gui_pts_needed(player)
element.parent[bonus_gui_control_pts_n_count.name].caption = r
element.parent[bonus_gui_control_pts_r_count.name].caption = tonumber(element.parent[bonus_gui_control_pts_a_count.name].caption) - r
disp[bonus_gui_control_pts_count.name].caption = 0 .. " / " .. bonus_score["limit"]
end)
--- A button used for pts apply
@@ -221,7 +182,7 @@ local bonus_gui_control_apply = Gui.element("bonus_gui_control_apply")
}:on_click(function(def, player, element)
local n = bonus_gui_pts_needed(player)
element.parent[bonus_gui_control_pts_n_count.name].caption = n
local r = tonumber(element.parent[bonus_gui_control_pts_a_count.name].caption) - n
local r = tonumber(element.parent[bonus_gui_control_pts_count.name].caption) - n
element.parent[bonus_gui_control_pts_r_count.name].caption = r
if r >= 0 then
@@ -236,15 +197,8 @@ local bonus_control_set = Gui.element("bonus_control_set")
local bonus_set = parent.add{ type = "flow", direction = "vertical", name = name }
local disp = Gui.elements.scroll_table(bonus_set, config.gui_display_width["half"] * 2, 2, "disp")
bonus_gui_control_pts_a(disp)
bonus_gui_control_pts_a_count(disp)
bonus_gui_control_pts_n(disp)
bonus_gui_control_pts_n_count(disp)
bonus_gui_control_pts_r(disp)
bonus_gui_control_pts_r_count(disp)
bonus_gui_control_pts(disp)
bonus_gui_control_pts_count(disp)
bonus_gui_control_reset(disp)
bonus_gui_control_apply(disp)
@@ -307,8 +261,7 @@ local bonus_gui_slider = Gui.element("bonus_gui_slider")
local r = bonus_gui_pts_needed(player)
local container = Gui.get_left_element(bonus_container, player)
local disp = container.frame["bonus_st_1"].disp.table
disp[bonus_gui_control_pts_n_count.name].caption = r
disp[bonus_gui_control_pts_r_count.name].caption = tonumber(disp[bonus_gui_control_pts_a_count.name].caption) - r
disp[bonus_gui_control_pts_count.name].caption = 0 .. " / " .. config.pts.base
end)
--- A vertical flow containing all the bonus data
@@ -341,7 +294,7 @@ bonus_container = Gui.element("bonus_container")
local disp = container["bonus_st_1"].disp.table
local n = bonus_gui_pts_needed(player, container.parent)
disp[bonus_gui_control_pts_n_count.name].caption = n
local r = tonumber(disp[bonus_gui_control_pts_a_count.name].caption) - n
local r = tonumber(disp[bonus_gui_control_pts_count.name].caption) - n
disp[bonus_gui_control_pts_r_count.name].caption = r
return container.parent
@@ -388,7 +341,7 @@ Event.add(defines.events.on_player_respawned, function(event)
local disp = container.frame["bonus_st_1"].disp.table
local n = bonus_gui_pts_needed(player)
disp[bonus_gui_control_pts_n_count.name].caption = n
local r = tonumber(disp[bonus_gui_control_pts_a_count.name].caption) - n
local r = tonumber(disp[bonus_gui_control_pts_count.name].caption) - n
disp[bonus_gui_control_pts_r_count.name].caption = r
if r >= 0 then