Files
Endfield-Data/LuaScripts/UI/Panels/FacHongsBusUpgradePopup/FacHongsBusUpgradePopupCtrl.lua
2025-12-02 20:37:18 +07:00

95 lines
2.5 KiB
Lua

local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
local PANEL_ID = PanelId.FacHongsBusUpgradePopup
FacHongsBusUpgradePopupCtrl = HL.Class('FacHongsBusUpgradePopupCtrl', uiCtrl.UICtrl)
local BUS_FREE_ID = "log_hongs_bus"
local BUS_START_ID = "log_hongs_bus_source"
FacHongsBusUpgradePopupCtrl.s_messages = HL.StaticField(HL.Table) << {
}
FacHongsBusUpgradePopupCtrl.m_busFreeData = HL.Field(HL.Table)
FacHongsBusUpgradePopupCtrl.m_popItemList = HL.Field(HL.Table)
FacHongsBusUpgradePopupCtrl.m_popItemIndex = HL.Field(HL.Number) << 1
FacHongsBusUpgradePopupCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
self.m_popItemList = arg.popItemList
self.m_busFreeData = arg.busFreeData
self.m_popItemIndex = 1
local onClose = arg.onClose
self.view.bgClick.onClick:AddListener(function()
if self.m_popItemIndex < #self.m_popItemList then
self.m_popItemIndex = self.m_popItemIndex + 1
self:_UpdateContent()
else
if onClose ~= nil then
onClose()
end
self:PlayAnimationOutAndClose()
end
end)
self:_UpdateContent()
self.view.controllerHintPlaceholder:InitControllerHintPlaceholder({ self.view.inputGroup.groupId })
end
FacHongsBusUpgradePopupCtrl._UpdateContent = HL.Method() << function(self)
local busInfo = self.m_popItemList[self.m_popItemIndex]
if self.m_busFreeData ~= nil then
local oldNum = self.m_busFreeData[busInfo.buildingId]
self.view.mainController:SetState(oldNum == 0 and "unlock" or "uplevel")
self.view.oldText.text = oldNum
self.view.newText.text = oldNum + busInfo.count
self.view.busFree.gameObject:SetActiveIfNecessary(busInfo.buildingId == BUS_FREE_ID)
self.view.busStart.gameObject:SetActiveIfNecessary(busInfo.buildingId == BUS_START_ID)
local success, buildingData = Tables.factoryBuildingTable:TryGetValue(busInfo.buildingId)
if success then
self.view.buildingName.text = buildingData.name
local tips = oldNum == 0 and Language.LUA_HONGS_BUS_POPUP_UNLOCK_TIPS or Language.LUA_HONGS_BUS_POPUP_UPLEVEL_TIPS
self.view.tipsText.text = string.format(tips, buildingData.name)
end
self:PlayAnimation(oldNum == 0 and "fachongsbusupgrade_unlockin" or "fachongsbusupgrade_upin")
AudioAdapter.PostEvent("Au_UI_Popup_FacTechTreePopUpPanel_Open")
end
end
HL.Commit(FacHongsBusUpgradePopupCtrl)