114 lines
2.8 KiB
Lua
114 lines
2.8 KiB
Lua
|
|
local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
|
|
local PANEL_ID = PanelId.FacTechPackage
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FacTechPackageCtrl = HL.Class('FacTechPackageCtrl', uiCtrl.UICtrl)
|
|
|
|
|
|
FacTechPackageCtrl.m_packageName2Cell = HL.Field(HL.Table)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FacTechPackageCtrl.s_messages = HL.StaticField(HL.Table) << {
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
FacTechPackageCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
|
|
self.view.btnClose.onClick:AddListener(function()
|
|
PhaseManager:PopPhase(PhaseId.FacTechTree)
|
|
end)
|
|
|
|
self.m_packageName2Cell = {}
|
|
|
|
self:_InitData(self.view.left, "tech_group_tundra")
|
|
self:_InitData(self.view.center, "tech_group_jinlong")
|
|
self:_InitData(self.view.right, "")
|
|
|
|
self:_InitController(arg)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
FacTechPackageCtrl._InitData = HL.Method(HL.Any, HL.String) << function(self, packageRef, packageName)
|
|
local facTechTreeSystem = GameInstance.player.facTechTreeSystem
|
|
if string.isEmpty(packageName) or facTechTreeSystem:PackageIsHidden(packageName) then
|
|
packageRef.gameObject:SetActive(false)
|
|
return
|
|
end
|
|
|
|
self.m_packageName2Cell[packageName] = packageRef
|
|
|
|
local packageData = Tables.facSTTGroupTable[packageName]
|
|
local isLocked = facTechTreeSystem:PackageIsLocked(packageName)
|
|
|
|
|
|
packageRef.unlocked.gameObject:SetActive(not isLocked)
|
|
packageRef.locked.gameObject:SetActive(isLocked)
|
|
|
|
if isLocked and packageData.conditions.Count > 0 then
|
|
packageRef.redText:SetAndResolveTextStyle(packageData.conditions[0].desc)
|
|
end
|
|
|
|
packageRef.btn.onClick:AddListener(function()
|
|
if not isLocked then
|
|
self:Notify(MessageConst.FAC_TECH_TREE_OPEN_TREE_PANEL, { packageName })
|
|
end
|
|
end)
|
|
|
|
|
|
local suffix = isLocked and "Locked" or ""
|
|
packageRef["packageText"..suffix].text = packageData.groupName
|
|
packageRef["descText"..suffix].text = packageData.desc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local currentProgress, totalProgress = FactoryUtils.getPackageInvestigateProgress(packageName)
|
|
packageRef["numberText"..suffix].text = string.format("%d/%d", currentProgress, totalProgress)
|
|
packageRef["numberTextShadow"..suffix].text = string.format("%d/%d", currentProgress, totalProgress)
|
|
|
|
if not isLocked then
|
|
local height = currentProgress/totalProgress
|
|
packageRef.bgFlow.material:SetFloat("_LiquidHeight", height)
|
|
packageRef.bgFlow2.material:SetFloat("_LiquidHeight", height)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FacTechPackageCtrl._InitController = HL.Method(HL.Table) << function(self, args)
|
|
if not DeviceInfo.usingController then
|
|
return
|
|
end
|
|
|
|
self.view.controllerHintPlaceholder:InitControllerHintPlaceholder({self.view.inputGroup.groupId})
|
|
|
|
local packageId = unpack(args or {})
|
|
local cell = string.isEmpty(packageId) and self.view.left or self.m_packageName2Cell[packageId]
|
|
UIUtils.setAsNaviTarget(cell.btn)
|
|
end
|
|
|
|
|
|
|
|
HL.Commit(FacTechPackageCtrl)
|