local UIWelfareEnergyPanel = UIViewClass() local MaxEnergy = DataSheetManager.ConstData:GetDataByID("ServerMaxEnergy").IntValue function UIWelfareEnergyPanel:OnOpened(context) self:RegistSystemEvent(EventID.UI_EnergyGet_EnergyStateRefresh, self.RefreshEnergyBox) self:RefreshEnergyBox() local desc, timeStr = UTL.Time.GetDateDescAndTime({[1] = 1}) --越南需要颠倒星期和时间顺序 if GameAppInfo.IsVietnamPackage() then UIUtils.SetLabel(self.lab_Info01, string.FormatByIdsId(Const_IDS["IDS_EnergyGet_Hint_7"], string.Concat(timeStr," ", string.lower(desc)))) else UIUtils.SetLabel(self.lab_Info01, string.FormatByIdsId(Const_IDS["IDS_EnergyGet_Hint_7"], string.Concat(desc, timeStr))) end end function UIWelfareEnergyPanel:RefreshTextInfo() UIUtils.SetLabelText(self.txt_Info, Const_IDS[CTL.EnergyGet.GetRandomEnergyText()]) end function UIWelfareEnergyPanel:RefreshEnergyBox(index) if index then self:RefreshSingleBox(index) else self:RefreshTextInfo() for i, v in ipairs(self.group_EnergyBox) do self:RefreshSingleBox(i) end end end function UIWelfareEnergyPanel:RefreshSingleBox(index) local energyData = DataSheetManager.EnergyGetData:GetDataByID(index) local state = MDL.EnergyGet.GetStateByIndex(index) local cell = self.group_EnergyBox[index] cell.lab_Energy.text = "+" .. energyData.Energy if state == MDL.EnergyGet.EnergyGetState.NonReceive then local isCanGet, timeStr = CTL.EnergyGet.IsCanGetEnergy(index) if isCanGet then cell.effect_Receive:PlayUIEffect() cell.state_Energy:SetState(1) UIUtils.SetActive(cell.img_Cover, false) else cell.txt_Time.text = string.FormatByIdsId(Const_IDS["IDS_EnergyGet_Hint_2"], timeStr) cell.effect_Receive:StopUIEffect() cell.state_Energy:SetState(0) UIUtils.SetActive(cell.img_Cover, true) end cell.btn_Receive:SetRedPoint(isCanGet) else cell.effect_Receive:StopUIEffect() cell.state_Energy:SetState(2) UIUtils.SetActive(cell.img_Cover, false) end end function UIWelfareEnergyPanel:PlayEatingEffect(index) if MDL.EnergyGet.IfHasTempSelectIndex(index) then return end if MDL.Player.GetEnergyValue() >= MaxEnergy then CTL.Tips.AddTipsMsg(Const_IDS["IDS_EnergyGet_Hint_6"]) return end if CTL.EnergyGet.IsCanGetEnergy(index) then CTL.Sound.PlayGameSound("UI_bouns") self.group_EnergyBox[index].effect_Eating:PlayUIEffect() self.group_EnergyBox[index].effect_Receive:StopUIEffect() MDL.EnergyGet.EnergyGetReq(index) else CTL.Tips.AddTipsMsg(Const_IDS["IDS_EnergyGet_Hint_4"]) CTL.Sound.PlayGameSound("UI_invalid") end end function UIWelfareEnergyPanel:OnButtonClicked(comp) for i, v in ipairs(self.group_EnergyBox) do if comp == v.btn_Unreceive then CTL.Tips.AddTipsMsg(Const_IDS["IDS_EnergyGet_Hint_4"]) CTL.Sound.PlayGameSound("UI_invalid") return elseif comp == v.btn_Receive then self:PlayEatingEffect(i) return elseif comp == v.btn_Received then CTL.Tips.AddTipsMsg(Const_IDS["IDS_EnergyGet_Hint_5"]) return end end end return UIWelfareEnergyPanel