local UIFriendRechargeLevelReward = UIViewClass() function UIFriendRechargeLevelReward:OnOpened(context) self.activityType = context.activityType self.activityId = context.activityId self:RegistSystemEvent(EventID.UI_FriendRecharger_OpenView, self.RefreshLevelRewardView) self:RegistSystemEvent(EventID.UI_SuperGoldHonorOrder_RefreshReward, self.RefreshLevelRewardView) self:RegistSystemEvent(EventID.UI_FriendRecharger_LevelUp, self.RefreshLevelRewardView) self:RefreshLevelRewardView() UIUtils.SetActive(self.group_Player.gameObject, self.rechargeBaseInfo.isUnlock) if self.rechargeBaseInfo.isUnlock then if self.isTeam then self.teamMemberInfo = MDL.FriendRecharge.GetMemberPlayerInfo(self.rechargeBaseInfo.completedAcid) CTL.FriendRecharge.SetTeamMemberInfo(self.group_Player, self.teamMemberInfo, self.isTeam) UIUtils.SetActive(self.group_Player.player2.group_NotFriend, not self.teamMemberInfo) if self.teamMemberInfo then CTL.FriendRecharge:SetFriendRechargePlayerInfo(self.group_Player.player2, self.teamMemberInfo) local memberFriendRechargeInfo = MDL.FriendRecharge.GetFriendRechargeInfo(self.teamMemberInfo.acid) if memberFriendRechargeInfo then self.group_Player.player2.group_Recharge:SetState(memberFriendRechargeInfo.rechargeType <= 0 and 0 or 1) else self.group_Player.player2.group_Recharge:SetState(0) end else self.group_Player.player2.state_Member:SetState(2) CTL.Character.SetPortraitAndFrame(self.group_Player.player2.UIHeroHead, 100001, 0) end else CTL.FriendRecharge.SetTeamMemberInfo(self.group_Player, nil, self.isTeam) end end end function UIFriendRechargeLevelReward:OnButtonClicked(comp) if comp == self.group_Level.btn_Buy then -- 购买等级,每次补完升级所需经验 UIManager.OpenView(Const_UI_Lua.UIEnum.UIFriendRechargePurchaseLv, {activityId = self.activityId, activityType = self.activityType}) elseif comp == self.btn_Up then -- 一键领取 if self.rechargeBaseInfo.isUnlock then if CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.FriendRecharge_Level) then MDL.SuperGoldHonorOrder.ClaimAllSubOrderRewardRequest(self.activityId) else CTL.Tips.AddTipsMsg(Const_IDS["IDS_HonorOrder_ZanWuJiangLi"]) -- 暂无可领奖励 end else CTL.Tips.AddTipsMsg(Const_IDS["IDS_FriendRecharge_Reward_Hint6"]) -- 未解锁 end elseif comp == self.group_Player.player2.btn_Chat then CTL.Friend.PrivateTalkToAcid(self.teamMemberInfo.acid) elseif comp == self.group_Level.btn_Lock then CTL.Tips.AddTipsMsg(Const_IDS["IDS_FriendRecharge_Reward_Hint6"]) -- 未解锁 end end function UIFriendRechargeLevelReward:OnCellInit(scrollRect, index, cellTable, data) UIUtils.SetLabel(cellTable.txt_Title, UIUtils.GetLocalizedTxt(Const_IDS[self.rechargeModelCfg.TitleIDS]).." "..string.FormatByIdsId(Const_IDS.IDS_Handbook_Hero_LevelNum, data.Level)) UIUtils.SetLabelText(cellTable.txt_Task, self.isTeam and Const_IDS[data.TeamLevelDes] or Const_IDS[data.SoloLevelDes]) if self.rechargeBaseInfo.isUnlock then local levelState = MDL.FriendRecharge.GetLevelState(data.Level) cellTable.state_btn:SetState(levelState) else cellTable.state_btn:SetState(3) end --道具奖励 for i, itemData in ipairs(data.Reward_Table) do local contentItem = cellTable.Content[i] if not contentItem then contentItem = self:InstantiateCellCollection(cellTable.cell.gameObject, cellTable.Content, self.item_Template.gameObject) if GameAppInfo.IsVersionGreaterThan16000() then self:InitUITemplate(contentItem.item, contentItem.gameObject) end end UIUtils.SetActive(contentItem.gameObject, true) UTL.Item.SetItemCell(contentItem.item, itemData.RewardItem, itemData.RewardNum) end for i = #data.Reward_Table + 1, #cellTable.Content do UIUtils.SetActive(cellTable.Content[i].gameObject, false) end end function UIFriendRechargeLevelReward:OnCellClicked(scrollRect, index, cellTable, target, data) if scrollRect == self.loop_FriendRechargeLevel then if target == cellTable.btn_Receive then -- 领取等级奖励 MDL.SuperGoldHonorOrder.ClaimSubOrderRewardRequest(self.activityId, MDL.HonorOrder.RewardType.Ordinary, data.Level) else for i, v in ipairs(cellTable.Content) do if target == v.item.event_Click then UTL.ItemTips.ShowCommonTipsById(data.Reward_Table[i].RewardItem) return end end end end end function UIFriendRechargeLevelReward:RefreshLevelRewardView() self.curRechargeType = MDL.FriendRecharge.GetRechargeType() self.isUnlock = MDL.FriendRecharge.GetPurchaseState() self.rechargeBaseInfo = MDL.FriendRecharge.GetRechargeBaseInfo() if self.rechargeBaseInfo.isUnlock then self.isTeam = self.curRechargeType == MDL.FriendRecharge.RechargeType.FRTeam if CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.FriendRecharge_Level) then self.state_Bottom:SetState(0) else self.state_Bottom:SetState(2) end else self.isTeam = true self.state_Bottom:SetState(1) end self.rechargeModelCfg = MDL.OperationActivity.FriendRechargeBackGround2:GetDataByActivityID_ModeType(self.activityId, self.isTeam and MDL.FriendRecharge.RechargeType.FRTeam or MDL.FriendRecharge.RechargeType.FRSingle) CTL.FriendRecharge:SetLevel(self.group_Level, self.isTeam) self:SetLevelRewardList() end function UIFriendRechargeLevelReward:SetLevelRewardList() if self.loop_FriendRechargeLevel.Count > 0 then self.loop_FriendRechargeLevel:ClearCells() end local levelDataList = MDL.OperationActivity.FriendRechargeReward:GetDataByActivityID_Level(self.activityId) for i, v in pairs(levelDataList) do self.loop_FriendRechargeLevel:AddData(v, 0) end self.loop_FriendRechargeLevel:MoveIndex(MDL.FriendRecharge.GetLevelRewardMoveIndex() - 1) end return UIFriendRechargeLevelReward