From 6318425f8047bfac886243c1d58952c12ed3f5f9 Mon Sep 17 00:00:00 2001 From: PHIDIAS Date: Sat, 8 Feb 2025 00:01:08 +0900 Subject: [PATCH] . --- exp_legacy/module/modules/gui/bonus.lua | 87 ++++++------------------- 1 file changed, 20 insertions(+), 67 deletions(-) diff --git a/exp_legacy/module/modules/gui/bonus.lua b/exp_legacy/module/modules/gui/bonus.lua index 62287400..fffc6e94 100644 --- a/exp_legacy/module/modules/gui/bonus.lua +++ b/exp_legacy/module/modules/gui/bonus.lua @@ -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