mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-30 20:41:41 +09:00
.
This commit is contained in:
@@ -4,6 +4,7 @@
|
|||||||
]]
|
]]
|
||||||
|
|
||||||
local Gui = require("modules/exp_gui")
|
local Gui = require("modules/exp_gui")
|
||||||
|
local Storage = require("modules/exp_util/storage")
|
||||||
local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event
|
local Event = require("modules/exp_legacy/utils/event") --- @dep utils.event
|
||||||
local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles
|
local Roles = require("modules.exp_legacy.expcore.roles") --- @dep expcore.roles
|
||||||
local config = require("modules.exp_legacy.config.bonus") --- @dep config.bonus
|
local config = require("modules.exp_legacy.config.bonus") --- @dep config.bonus
|
||||||
@@ -11,7 +12,14 @@ local vlayer = require("modules.exp_legacy.modules.control.vlayer")
|
|||||||
local format_number = require("util").format_number --- @dep util
|
local format_number = require("util").format_number --- @dep util
|
||||||
|
|
||||||
local bonus_container
|
local bonus_container
|
||||||
local bonus_score_limit = config.pts.base
|
|
||||||
|
local bonus_data = {
|
||||||
|
score_limit = {}
|
||||||
|
}
|
||||||
|
|
||||||
|
Storage.register(bonus_data, function(tbl)
|
||||||
|
bonus_data = tbl
|
||||||
|
end)
|
||||||
|
|
||||||
--- @param player LuaPlayer
|
--- @param player LuaPlayer
|
||||||
--- @param container LuaGuiElement?
|
--- @param container LuaGuiElement?
|
||||||
@@ -123,7 +131,7 @@ local bonus_gui_control_pts_count = Gui.element("bonus_gui_control_pts_count")
|
|||||||
:draw{
|
:draw{
|
||||||
type = "progressbar",
|
type = "progressbar",
|
||||||
name = Gui.property_from_name,
|
name = Gui.property_from_name,
|
||||||
caption = "0 / " .. bonus_score_limit,
|
caption = "0 / 0",
|
||||||
value = 0,
|
value = 0,
|
||||||
style = "electric_satisfaction_statistics_progressbar",
|
style = "electric_satisfaction_statistics_progressbar",
|
||||||
}:style{
|
}:style{
|
||||||
@@ -155,8 +163,8 @@ local bonus_gui_control_reset = Gui.element("bonus_gui_control_reset")
|
|||||||
disp[slider.tags.counter].caption = format_number(slider.slider_value, false)
|
disp[slider.tags.counter].caption = format_number(slider.slider_value, false)
|
||||||
|
|
||||||
local n = bonus_gui_pts_needed(player)
|
local n = bonus_gui_pts_needed(player)
|
||||||
element.parent[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_score_limit
|
element.parent[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_data.score_limit[player]
|
||||||
element.parent[bonus_gui_control_pts_count.name].value = n / bonus_score_limit
|
element.parent[bonus_gui_control_pts_count.name].value = n / bonus_data.score_limit[player]
|
||||||
end)
|
end)
|
||||||
|
|
||||||
--- A button used for pts apply
|
--- A button used for pts apply
|
||||||
@@ -170,10 +178,10 @@ local bonus_gui_control_apply = Gui.element("bonus_gui_control_apply")
|
|||||||
width = config.gui_display_width["half"],
|
width = config.gui_display_width["half"],
|
||||||
}:on_click(function(def, player, element)
|
}:on_click(function(def, player, element)
|
||||||
local n = bonus_gui_pts_needed(player)
|
local n = bonus_gui_pts_needed(player)
|
||||||
element.parent[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_score_limit
|
element.parent[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_data.score_limit[player]
|
||||||
element.parent[bonus_gui_control_pts_count.name].value = n / bonus_score_limit
|
element.parent[bonus_gui_control_pts_count.name].value = n / bonus_data.score_limit[player]
|
||||||
|
|
||||||
if n <= bonus_score_limit then
|
if n <= bonus_data.score_limit[player] then
|
||||||
apply_bonus(player)
|
apply_bonus(player)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
@@ -236,8 +244,8 @@ local bonus_gui_slider = Gui.element("bonus_gui_slider")
|
|||||||
local container = Gui.get_left_element(bonus_container, player)
|
local container = Gui.get_left_element(bonus_container, player)
|
||||||
local disp = container.frame["bonus_st_1"].disp.table
|
local disp = container.frame["bonus_st_1"].disp.table
|
||||||
local n = bonus_gui_pts_needed(player)
|
local n = bonus_gui_pts_needed(player)
|
||||||
disp[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_score_limit
|
disp[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_data.score_limit[player]
|
||||||
disp[bonus_gui_control_pts_count.name].value = n / bonus_score_limit
|
disp[bonus_gui_control_pts_count.name].value = n / bonus_data.score_limit[player]
|
||||||
end)
|
end)
|
||||||
|
|
||||||
--- A vertical flow containing all the bonus data
|
--- A vertical flow containing all the bonus data
|
||||||
@@ -268,9 +276,9 @@ bonus_container = Gui.element("bonus_container")
|
|||||||
|
|
||||||
local disp = container["bonus_st_1"].disp.table
|
local disp = container["bonus_st_1"].disp.table
|
||||||
local n = bonus_gui_pts_needed(player, container.parent)
|
local n = bonus_gui_pts_needed(player, container.parent)
|
||||||
bonus_score_limit = bonus_score_limit_calc(player)
|
bonus_data.score_limit[player] = bonus_score_limit_calc(player)
|
||||||
disp[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_score_limit
|
disp[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_data.score_limit[player]
|
||||||
disp[bonus_gui_control_pts_count.name].value = n / bonus_score_limit
|
disp[bonus_gui_control_pts_count.name].value = n / bonus_data.score_limit[player]
|
||||||
|
|
||||||
return container.parent
|
return container.parent
|
||||||
end)
|
end)
|
||||||
@@ -303,13 +311,14 @@ end)
|
|||||||
|
|
||||||
Event.add(Roles.events.on_role_assigned, function(event)
|
Event.add(Roles.events.on_role_assigned, function(event)
|
||||||
local player = game.players[event.player_index]
|
local player = game.players[event.player_index]
|
||||||
bonus_score_limit = bonus_score_limit_calc(player)
|
bonus_data[player] = config.pts.base
|
||||||
|
bonus_data.score_limit[player] = bonus_score_limit_calc(player)
|
||||||
apply_bonus(player)
|
apply_bonus(player)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
Event.add(Roles.events.on_role_unassigned, function(event)
|
Event.add(Roles.events.on_role_unassigned, function(event)
|
||||||
local player = game.players[event.player_index]
|
local player = game.players[event.player_index]
|
||||||
bonus_score_limit = bonus_score_limit_calc(player)
|
bonus_data.score_limit[player] = bonus_score_limit_calc(player)
|
||||||
apply_bonus(player)
|
apply_bonus(player)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
@@ -319,10 +328,10 @@ Event.add(defines.events.on_player_respawned, function(event)
|
|||||||
local container = Gui.get_left_element(bonus_container, player)
|
local container = Gui.get_left_element(bonus_container, player)
|
||||||
local disp = container.frame["bonus_st_1"].disp.table
|
local disp = container.frame["bonus_st_1"].disp.table
|
||||||
local n = bonus_gui_pts_needed(player)
|
local n = bonus_gui_pts_needed(player)
|
||||||
disp[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_score_limit
|
disp[bonus_gui_control_pts_count.name].caption = n .. " / " .. bonus_data.score_limit[player]
|
||||||
disp[bonus_gui_control_pts_count.name].value = n / bonus_score_limit
|
disp[bonus_gui_control_pts_count.name].value = n / bonus_data.score_limit[player]
|
||||||
|
|
||||||
if n <= bonus_score_limit then
|
if n <= bonus_data.score_limit[player] then
|
||||||
apply_bonus(player)
|
apply_bonus(player)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|||||||
Reference in New Issue
Block a user