124 lines
3.1 KiB
Lua
124 lines
3.1 KiB
Lua
local UIWidgetBase = require_ex('Common/Core/UIWidgetBase')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DomainTopMoneyTitle = HL.Class('DomainTopMoneyTitle', UIWidgetBase)
|
|
|
|
|
|
|
|
|
|
DomainTopMoneyTitle.m_moneyId = HL.Field(HL.String) << ""
|
|
|
|
|
|
DomainTopMoneyTitle.m_moneyLimit = HL.Field(HL.Number) << -1
|
|
|
|
|
|
DomainTopMoneyTitle.m_moneyClearRule = HL.Field(GEnums.MoneyClearRuleType)
|
|
|
|
|
|
DomainTopMoneyTitle.m_resetMoneyCountDownCompleteFunc = HL.Field(HL.Function)
|
|
|
|
|
|
DomainTopMoneyTitle.m_timeFormatFunc = HL.Field(HL.Function)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DomainTopMoneyTitle._OnFirstTimeInit = HL.Override() << function(self)
|
|
self.m_resetMoneyCountDownCompleteFunc = function()
|
|
self:_OnCountDownComplete()
|
|
end
|
|
self.m_timeFormatFunc = function(leftTime)
|
|
local curMoney = Utils.getItemCount(self.m_moneyId)
|
|
if curMoney < self.m_moneyLimit then
|
|
self.view.timeNode.gameObject:SetActive(false)
|
|
else
|
|
self.view.timeNode.gameObject:SetActive(true)
|
|
end
|
|
|
|
self.view.resetMoneyTimeTxt.view.textStateCtrl:SetState(leftTime >= Const.SEC_PER_DAY and "EnoughTime" or "insufficientTime")
|
|
return UIUtils.getShortLeftTime(leftTime)
|
|
end
|
|
self.view.contentNaviGroup.onIsFocusedChange:AddListener(function(isFocused)
|
|
if not isFocused then
|
|
Notify(MessageConst.HIDE_ITEM_TIPS)
|
|
end
|
|
end)
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DomainTopMoneyTitle.InitDomainTopMoneyTitle = HL.Method(HL.String, HL.Opt(HL.Number, GEnums.MoneyClearRuleType))
|
|
<< function(self, moneyId, moneyLimit, clearRuleType)
|
|
self:_FirstTimeInit()
|
|
|
|
self.m_moneyId = moneyId
|
|
if moneyLimit ~= nil then
|
|
self.m_moneyLimit = moneyLimit
|
|
self.m_moneyClearRule = clearRuleType or GEnums.MoneyClearRuleType.Weekly
|
|
else
|
|
local hasMoneyCfg, moneyCfg = Tables.moneyConfigTable:TryGetValue(moneyId)
|
|
if hasMoneyCfg then
|
|
self.m_moneyLimit = moneyCfg.MoneyClearLimit
|
|
self.m_moneyClearRule = moneyCfg.clearRule
|
|
end
|
|
end
|
|
|
|
self.view.moneyWidget:InitMoneyCell(moneyId, true, false, true, self.m_moneyLimit)
|
|
self:_OnCountDownComplete()
|
|
end
|
|
|
|
|
|
|
|
DomainTopMoneyTitle._GetTargetTime = HL.Method().Return(HL.Number) << function(self)
|
|
local targetTime = 0
|
|
if self.m_moneyClearRule == GEnums.MoneyClearRuleType.Weekly then
|
|
targetTime = Utils.getNextWeeklyServerRefreshTime()
|
|
elseif self.m_moneyClearRule == GEnums.MoneyClearRuleType.Daily then
|
|
targetTime = Utils.getNextCommonServerRefreshTime()
|
|
elseif self.m_moneyClearRule == GEnums.MoneyClearRuleType.Monthly then
|
|
targetTime = Utils.getNextMonthlyServerRefreshTime()
|
|
end
|
|
return targetTime
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
DomainTopMoneyTitle._OnCountDownComplete = HL.Method() << function(self)
|
|
local targetTime = self:_GetTargetTime()
|
|
self.view.resetMoneyTimeTxt:InitCountDownText(
|
|
targetTime,
|
|
self.m_resetMoneyCountDownCompleteFunc,
|
|
self.m_timeFormatFunc
|
|
)
|
|
end
|
|
|
|
|
|
|
|
|
|
DomainTopMoneyTitle.SetTitleText = HL.Method(HL.String) << function(self, titleText)
|
|
self.view.titleTxt.text = titleText
|
|
end
|
|
|
|
|
|
HL.Commit(DomainTopMoneyTitle)
|
|
return DomainTopMoneyTitle
|
|
|