162 lines
4.1 KiB
Lua
162 lines
4.1 KiB
Lua
|
|
local uiCtrl = require_ex('UI/Panels/Base/UICtrl')
|
|
local PANEL_ID = PanelId.DomainGradePopup
|
|
|
|
local SHOW_REWARD_ITEM_COUNT = 5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DomainGradePopupCtrl = HL.Class('DomainGradePopupCtrl', uiCtrl.UICtrl)
|
|
|
|
|
|
DomainGradePopupCtrl.m_domainId = HL.Field(HL.String) << ""
|
|
|
|
|
|
DomainGradePopupCtrl.m_lv = HL.Field(HL.Number) << -1
|
|
|
|
|
|
DomainGradePopupCtrl.m_genLevelEffectCellFunc = HL.Field(HL.Function)
|
|
|
|
|
|
DomainGradePopupCtrl.m_rewardItemCellCache = HL.Field(HL.Forward("UIListCache"))
|
|
|
|
|
|
DomainGradePopupCtrl.m_levelEffectInfo = HL.Field(HL.Table)
|
|
|
|
|
|
DomainGradePopupCtrl.m_isGet = HL.Field(HL.Boolean) << false
|
|
|
|
|
|
DomainGradePopupCtrl.m_isReachedLevel = HL.Field(HL.Boolean) << false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DomainGradePopupCtrl.s_messages = HL.StaticField(HL.Table) << {
|
|
[MessageConst.ON_DOMAIN_DEVELOPMENT_LEVEL_REWARD_GET] = 'OnDomainDevelopmentLevelRewardGet',
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DomainGradePopupCtrl.OnCreate = HL.Override(HL.Any) << function(self, arg)
|
|
self.m_domainId = arg.domainId
|
|
self.m_lv = arg.lv
|
|
|
|
self.m_genLevelEffectCellFunc = UIUtils.genCachedCellFunction(self.view.levelEffectScrollList)
|
|
self.m_rewardItemCellCache = UIUtils.genCellCache(self.view.titleNode.rewardItemCell)
|
|
|
|
self.view.levelEffectScrollList.onUpdateCell:AddListener(function(gameObject, csIndex)
|
|
self:_UpdateLevelEffectCell(gameObject, csIndex)
|
|
end)
|
|
|
|
self.view.closeBtn.onClick:AddListener(function()
|
|
self:_OnClickCloseBtn()
|
|
end)
|
|
|
|
self.view.fullScreenCloseBtn.onClick:AddListener(function()
|
|
self:_OnClickCloseBtn()
|
|
end)
|
|
|
|
self.view.titleNode.receiveBtn.onClick:AddListener(function()
|
|
self:_OnClickReceiveBtn()
|
|
end)
|
|
|
|
self:_UpdateState()
|
|
|
|
self:_UpdateTitleInfo()
|
|
self:_UpdateLevelRewardsInfo()
|
|
self:_UpdateLevelEffectInfo()
|
|
self.view.controllerHintPlaceholder:InitControllerHintPlaceholder({self.view.inputGroup.groupId})
|
|
end
|
|
|
|
|
|
|
|
DomainGradePopupCtrl._UpdateState = HL.Method() << function(self)
|
|
local domainDevelopmentSys = GameInstance.player.domainDevelopmentSystem
|
|
local domainData = domainDevelopmentSys.domainDevDataDic:get_Item(self.m_domainId)
|
|
|
|
self.m_isReachedLevel = self.m_lv <= domainData.lv
|
|
self.m_isGet = domainDevelopmentSys:IsLevelRewarded(self.m_domainId, self.m_lv)
|
|
end
|
|
|
|
|
|
|
|
DomainGradePopupCtrl._UpdateTitleInfo = HL.Method() << function(self)
|
|
DomainDevelopmentUtils.updateLevelCellTitle(self.view.titleNode, self.m_domainId, self.m_lv)
|
|
end
|
|
|
|
|
|
|
|
DomainGradePopupCtrl._UpdateLevelRewardsInfo = HL.Method() << function(self)
|
|
local domainCfg = Tables.domainDataTable[self.m_domainId]
|
|
local domainDevelopmentLevelCfg = domainCfg.domainDevelopmentLevel[self.m_lv - 1]
|
|
local rewardId = domainDevelopmentLevelCfg.rewardId
|
|
local rewards = string.isEmpty(rewardId) and {} or UIUtils.getRewardItems(rewardId)
|
|
self.m_rewardItemCellCache:Refresh(SHOW_REWARD_ITEM_COUNT, function(cell, luaIndex)
|
|
local rewardInfo = rewards[luaIndex]
|
|
DomainDevelopmentUtils.updateLevelRewardCell(cell, rewardInfo, self.m_isGet)
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
DomainGradePopupCtrl._UpdateLevelEffectInfo = HL.Method() << function(self)
|
|
self.m_levelEffectInfo = DomainDevelopmentUtils.genLevelEffectInfo(self.m_domainId, self.m_lv)
|
|
self.view.levelEffectScrollList:UpdateCount(#self.m_levelEffectInfo)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
DomainGradePopupCtrl._UpdateLevelEffectCell = HL.Method(GameObject, HL.Number) << function(self, gameObject, csIndex)
|
|
local cell = self.m_genLevelEffectCellFunc(gameObject)
|
|
local levelEffectInfoUnit = self.m_levelEffectInfo[LuaIndex(csIndex)]
|
|
DomainDevelopmentUtils.updateLevelEffectCell(cell, levelEffectInfoUnit, self.m_isReachedLevel)
|
|
end
|
|
|
|
|
|
|
|
DomainGradePopupCtrl._OnClickCloseBtn = HL.Method() << function(self)
|
|
self:PlayAnimationOutAndClose()
|
|
end
|
|
|
|
|
|
|
|
DomainGradePopupCtrl._OnClickReceiveBtn = HL.Method() << function(self)
|
|
GameInstance.player.domainDevelopmentSystem:TakeLevelReward(self.m_domainId, self.m_lv)
|
|
end
|
|
|
|
|
|
|
|
|
|
DomainGradePopupCtrl.OnDomainDevelopmentLevelRewardGet = HL.Method(HL.Any) << function(self, args)
|
|
self:_UpdateState()
|
|
|
|
self:_UpdateTitleInfo()
|
|
self:_UpdateLevelRewardsInfo()
|
|
self:_UpdateLevelEffectInfo()
|
|
end
|
|
|
|
HL.Commit(DomainGradePopupCtrl)
|