local UIFriendRechargeInvite = UIViewClass() function UIFriendRechargeInvite:OnOpened(context) self.activityType = context.activityType self.activityId = context.activityId self.parentPanel = context.parentPanel self:RegistSystemEvent(EventID.UI_FriendRecharger_RefreshInviteList, self.ChangeModel) self:RegistSystemEvent(CTL.RedPoint.RedPointKey.FriendRecharge_Invite, self.RefreshRedPoint) self.backGroundCfg = MDL.OperationActivity.ActivityBaseData[self.activityType]:GetDataByActivityID(self.activityId) self.teamBackGround2Cfg = MDL.OperationActivity.FriendRechargeBackGround2:GetDataByActivityID_ModeType(self.activityId, 1) self.soloBackGround2Cfg = MDL.OperationActivity.FriendRechargeBackGround2:GetDataByActivityID_ModeType(self.activityId, 2) self.rechargeBaseInfo = MDL.FriendRecharge.GetRechargeBaseInfo() if self.rechargeBaseInfo.isUnlock then self:ChangeModel(MDL.FriendRecharge.GetRechargeType() == MDL.FriendRecharge.RechargeType.FRTeam) else self:ChangeModel(true) end end function UIFriendRechargeInvite:OnButtonClicked(comp) if comp == self.event_Switch then self:ChangeModel(not self.isTeam) elseif comp == self.btn_Price then -- 充值 if not MDL.FriendRecharge.GetCurFriendRechargeIsOpen(self.activityId) then CTL.Tips.AddTipsMsg(Const_IDS.IDS_ERRORCODE_174_WarnCode_Activity_EndWrongHint) -- 活动已结束 return end if self.isUnlock then CTL.Tips.AddTipsMsg(Const_IDS.IDS_Fund_Button_Paid) -- 已购买 else local IAPid if self.isTeam then IAPid = self.teamBackGround2Cfg.IAP else if self.rechargeBaseInfo.rechargeType == MDL.FriendRecharge.RechargeType.FRTeam then IAPid = self.backGroundCfg.DifferenceIAP else IAPid = self.soloBackGround2Cfg.IAP end end if GameAppInfo.IsJapanesePackage() then MDL.Currency.GetOrderIDReq(IAPid, MDL.Currency.PayType.FriendGift, 0, self.activityId, self.activityType) else MDL.Currency.GetOrderIDReq(IAPid, MDL.Currency.PayType.SubHonorOrder, 0, self.activityId, self.activityType) end end elseif comp == self.player2.event_Add then UIManager.OpenView(Const_UI_Lua.UIEnum.UIFriendRechargeInviteList, {activityId = self.activityId, activityType = self.activityType}) elseif comp == self.player2.btn_Chat then CTL.Friend.PrivateTalkToAcid(self.teamMemberInfo.acid) elseif comp == self.player2.btn_Reset then -- 解除邀约 if self.teamMemberInfo then local func = function() MDL.FriendRecharge.FriendRechargeFriendOptRequest(self.activityId, MDL.FriendRecharge.FriendOptType.FRDisband, self.rechargeBaseInfo.completedAcid) end local tipsStr = string.FormatByIdsId(Const_IDS.IDS_FriendRecharge_Invitation_Hint16, self.teamMemberInfo.name) UTL.MessageBox.ShowOKCancelBox(nil, tipsStr, func, nil) else MDL.FriendRecharge.FriendRechargeFriendOptRequest(self.activityId, MDL.FriendRecharge.FriendOptType.FRDisband, self.rechargeBaseInfo.completedAcid) end end end function UIFriendRechargeInvite:ChangeModel(isTeam) if isTeam == nil then isTeam = self.isTeam end self.rechargeBaseInfo = MDL.FriendRecharge.GetRechargeBaseInfo() self.teamMemberInfo = MDL.FriendRecharge.GetMemberPlayerInfo(self.rechargeBaseInfo.completedAcid) self.isUnlock = MDL.FriendRecharge.GetPurchaseState() CTL.FriendRecharge.SetTeamMemberInfo(self, self.teamMemberInfo, isTeam) self.parentPanel:ChangeModel(isTeam) UIUtils.SetActive(self.group_Wait, false) UIUtils.SetActive(self.group_Pay, false) UIUtils.SetActive(self.event_Switch, true) if isTeam then if self.teamMemberInfo then CTL.FriendRecharge:SetFriendRechargePlayerInfo(self.player2, self.teamMemberInfo) local memberFriendRechargeInfo = MDL.FriendRecharge.GetFriendRechargeInfo(self.teamMemberInfo.acid) if memberFriendRechargeInfo then UIUtils.SetActive(self.event_Switch, memberFriendRechargeInfo.rechargeType <= 0) self.player2.group_Recharge:SetState(memberFriendRechargeInfo.rechargeType <= 0 and 0 or 1) else self.player2.group_Recharge:SetState(0) end else if not string.isNilOrEmpty(self.rechargeBaseInfo.completedAcid) then self.player2.state_Member:SetState(2) CTL.Character.SetPortraitAndFrame(self.player2.UIHeroHead, 100001, 0) end self:RefreshRedPoint() end UIUtils.SetLabel(self.txt_DiscountPrice, MDL.Currency.GetFullyIAPPrice(self.teamBackGround2Cfg.IAP)) UIUtils.SetLabel(self.txt_OldPrice, MDL.Currency.GetFullyIAPPrice(self.soloBackGround2Cfg.IAP)) local amount = MDL.Currency.GetAmountByIAPIndex(self.teamBackGround2Cfg.IAP) UIUtils.SetActive(self.group_Score, amount and true or false) if amount then UIUtils.SetLabel(self.lab_Remind, string.FormatByIdsId(Const_IDS.IDS_TotalTopUp_Score_Tips_Giftbag, amount)) end UIUtils.SetActive(self.btn_Price.gameObject, self.rechargeBaseInfo.rechargeType ~= 1) UIUtils.SetActive(self.group_Wait, self.rechargeBaseInfo.rechargeType == MDL.FriendRecharge.RechargeType.FRTeam) MDL.FriendRecharge.SetRechargeType(MDL.FriendRecharge.RechargeType.FRTeam) else UIUtils.SetActive(self.group_Pay, self.rechargeBaseInfo.rechargeType == MDL.FriendRecharge.RechargeType.FRTeam) local iapID = self.soloBackGround2Cfg.IAP if self.rechargeBaseInfo.rechargeType > 0 then iapID = self.backGroundCfg.DifferenceIAP end UIUtils.SetLabel(self.txt_Price, MDL.Currency.GetFullyIAPPrice(iapID)) local amount = MDL.Currency.GetAmountByIAPIndex(iapID) UIUtils.SetActive(self.group_Score, amount and true or false) if amount then UIUtils.SetLabel(self.lab_Remind, string.FormatByIdsId(Const_IDS.IDS_TotalTopUp_Score_Tips_Giftbag, amount)) end UIUtils.SetActive(self.btn_Price.gameObject, true) MDL.FriendRecharge.SetRechargeType(MDL.FriendRecharge.RechargeType.FRSingle) end self.state_Change:SetState(isTeam and 0 or 1) self.isTeam = isTeam end function UIFriendRechargeInvite:SetPlayerInfo(cellTable, playerInfo) --好友的数据字段名首字母都是小写,陌生人和势力的数据中字段名都是大写 -- 头像 CTL.Character.SetPortraitAndFrame(cellTable.UIHeroHead, playerInfo.PortraitId or playerInfo.portraitId, playerInfo.FrameId or playerInfo.frameId) -- 玩家名、性别 local server = "" if CTL.CrossServer.IsInCrossServerScene() then server = CTL.CrossServer.GetServerShowStr(playerInfo.ShowServerId or playerInfo.showServerId, not (playerInfo.IsCross or playerInfo.isCross)) end cellTable.lab_RoleName.text = playerInfo.name .. server CTL.Player.OperateGenderImage(cellTable.image_Gender, playerInfo.sex) local guildId = playerInfo.guildID local emblemContent = playerInfo.EmblemContent local emblemFrame = playerInfo.EmblemFrame --同势力显示不同颜色的工会名字 if MDL.Guild.IsSameGuild(guildId) then UIUtils.SetLabel(cellTable.lab_GuildName, UTL.Color.FormatTextByColor(UTL.Color.ModelNameColor.Blue, playerInfo.guildName)) else UIUtils.SetLabelText(cellTable.lab_GuildName, Const_IDS["IDS_TeamUI_ActiveInvitation_NoGuild"]) end --有工会的话显示势力名字、徽记显示 if not string.isNilOrEmpty(playerInfo.guildName) then cellTable.lab_GuildName.text = playerInfo.guildName UIUtils.SetLabel(cellTable.txt_GuildInitiate, emblemContent) if emblemFrame > 0 then UTL.Item.SetAtlasSprite(cellTable.img_GuildMark, "UI_Guild", DataSheetManager.GuildEmblem:GetDataByID(emblemFrame).Image) end UIUtils.SetActive(cellTable.txt_GuildInitiate, true) UIUtils.SetActive(cellTable.img_GuildMark, true) else UIUtils.SetActive(cellTable.txt_GuildInitiate, false) UIUtils.SetActive(cellTable.img_GuildMark, false) end end function UIFriendRechargeInvite:RefreshRedPoint() self.player2.event_Add:SetRedPoint(CTL.RedPoint.GetRedPointActive(CTL.RedPoint.RedPointKey.FriendRecharge_Invite)) end return UIFriendRechargeInvite