276 lines
11 KiB
Lua
276 lines
11 KiB
Lua
|
XUiPanelPersonalDetails = XClass(nil, "XUiPanelPersonalDetails")
|
||
|
|
||
|
function XUiPanelPersonalDetails:Ctor(ui, rootUi)
|
||
|
self.GameObject = ui.gameObject
|
||
|
self.Transform = ui.transform
|
||
|
self.RootUi = rootUi
|
||
|
self:InitAutoScript()
|
||
|
self:InitData()
|
||
|
end
|
||
|
function XUiPanelPersonalDetails:InitData()
|
||
|
self.BtnSlider = self.Transform:Find("ImgJBLevelBg/Slider"):GetComponent("Slider")
|
||
|
self.BtnSlider.interactable = false
|
||
|
self.BtnDormitory.gameObject:SetActive(false)
|
||
|
self.BtnDormitoryDis.gameObject:SetActive(true)
|
||
|
self.BtnAssistance.gameObject:SetActive(false)
|
||
|
self.BtnAssistanceDis.gameObject:SetActive(true)
|
||
|
self.BtnPraise.interactable = false
|
||
|
self.XUiPanelCombat = XUiPanelPersonalDetailsCombat.New(self.PanelPersonalDetailsCombat, self.RootUi)
|
||
|
self.XUiPanelSupport = XUiPanelSupport.New(self.PanelSupport, self.RootUi)
|
||
|
self.BtnViewJb.gameObject:SetActive(false)
|
||
|
end
|
||
|
-- auto
|
||
|
-- Automatic generation of code, forbid to edit
|
||
|
function XUiPanelPersonalDetails:InitAutoScript()
|
||
|
self:AutoInitUi()
|
||
|
self.SpecialSoundMap = {}
|
||
|
self:AutoAddListener()
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:AutoInitUi()
|
||
|
self.TxtIdcode = self.Transform:Find("TxtIdcode"):GetComponent("Text")
|
||
|
self.BtnCopy = self.Transform:Find("TxtIdcode/BtnCopy"):GetComponent("Button")
|
||
|
self.TxtLevel = self.Transform:Find("TxtLevel"):GetComponent("Text")
|
||
|
self.TxtName = self.Transform:Find("TxtName"):GetComponent("Text")
|
||
|
self.ImgIcon = self.Transform:Find("ImgIcon"):GetComponent("Image")
|
||
|
self.TxtBirthday = self.Transform:Find("TxtBirthday"):GetComponent("Text")
|
||
|
self.ImgJBLevelBg = self.Transform:Find("ImgJBLevelBg"):GetComponent("Image")
|
||
|
self.TxtJBLevel = self.Transform:Find("ImgJBLevelBg/TxtJBLevel"):GetComponent("Text")
|
||
|
self.TxtJBPercent = self.Transform:Find("ImgJBLevelBg/TxtJBPercent"):GetComponent("Text")
|
||
|
self.Slider = self.Transform:Find("ImgJBLevelBg/Slider"):GetComponent("Slider")
|
||
|
self.BtnViewJb = self.Transform:Find("ImgJBLevelBg/BtnView"):GetComponent("Button")
|
||
|
self.ImgTeamBg = self.Transform:Find("ImgTeamBg"):GetComponent("Image")
|
||
|
self.TxtTeamName = self.Transform:Find("ImgTeamBg/TxtTeamName"):GetComponent("Text")
|
||
|
self.BtnViewTeam = self.Transform:Find("ImgTeamBg/BtnView"):GetComponent("Button")
|
||
|
self.BtnContent = self.Transform:Find("BtnContent"):GetComponent("Button")
|
||
|
self.BtnDormitory = self.Transform:Find("BtnContent/BtnDormitory"):GetComponent("Button")
|
||
|
self.BtnDormitoryDis = self.Transform:Find("BtnContent/BtnDormitoryDis")
|
||
|
self.BtnPrivateChat = self.Transform:Find("BtnContent/BtnPrivateChat"):GetComponent("Button")
|
||
|
self.BtnAssistance = self.Transform:Find("BtnContent/BtnAssistance"):GetComponent("Button")
|
||
|
self.BtnAssistanceDis = self.Transform:Find("BtnContent/BtnAssistanceDis")
|
||
|
self.BtnDelete = self.Transform:Find("BtnContent/BtnDelete"):GetComponent("Button")
|
||
|
self.BtnAdd = self.Transform:Find("BtnContent/BtnAdd"):GetComponent("Button")
|
||
|
self.BtnReport = self.Transform:Find("BtnContent/BtnReport"):GetComponent("Button")
|
||
|
self.BtnPraise = self.Transform:Find("BtnContent/BtnPraise"):GetComponent("Button")
|
||
|
self.TxtCount = self.Transform:Find("BtnContent/BtnPraise/TxtCount"):GetComponent("Text")
|
||
|
self.PanelSupport = self.Transform:Find("PanelSupport")
|
||
|
self.PanelPersonalDetailsCombat = self.Transform:Find("PanelPersonalDetailsCombat")
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:GetAutoKey(uiNode, eventName)
|
||
|
if not uiNode then
|
||
|
return
|
||
|
end
|
||
|
return eventName .. uiNode:GetHashCode()
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:RegisterListener(uiNode, eventName, func)
|
||
|
local key = self:GetAutoKey(uiNode, eventName)
|
||
|
if not key then
|
||
|
return
|
||
|
end
|
||
|
local listener = self.AutoCreateListeners[key]
|
||
|
if listener ~= nil then
|
||
|
uiNode[eventName]:RemoveListener(listener)
|
||
|
end
|
||
|
|
||
|
if func ~= nil then
|
||
|
if type(func) ~= "function" then
|
||
|
XLog.Error("XUiPanelPersonalDetails:RegisterListener函数错误, 参数func需要是function类型, func的类型是" .. type(func))
|
||
|
end
|
||
|
|
||
|
listener = function(...)
|
||
|
XSoundManager.PlayBtnMusic(self.SpecialSoundMap[key], eventName)
|
||
|
func(self, ...)
|
||
|
end
|
||
|
|
||
|
uiNode[eventName]:AddListener(listener)
|
||
|
self.AutoCreateListeners[key] = listener
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:AutoAddListener()
|
||
|
self.AutoCreateListeners = {}
|
||
|
XUiHelper.RegisterClickEvent(self, self.BtnCopy, self.OnBtnCopyClick)
|
||
|
self:RegisterListener(self.Slider, "onValueChanged", self.OnSliderValueChanged)
|
||
|
XUiHelper.RegisterClickEvent(self, self.BtnViewTeam, self.OnBtnViewClick)
|
||
|
XUiHelper.RegisterClickEvent(self, self.BtnContent, self.OnBtnContentClick)
|
||
|
XUiHelper.RegisterClickEvent(self, self.BtnDormitory, self.OnBtnDormitoryClick)
|
||
|
XUiHelper.RegisterClickEvent(self, self.BtnPrivateChat, self.OnBtnPrivateChatClick)
|
||
|
XUiHelper.RegisterClickEvent(self, self.BtnAssistance, self.OnBtnAssistanceClick)
|
||
|
XUiHelper.RegisterClickEvent(self, self.BtnDelete, self.OnBtnDeleteClick)
|
||
|
XUiHelper.RegisterClickEvent(self, self.BtnAdd, self.OnBtnAddClick)
|
||
|
XUiHelper.RegisterClickEvent(self, self.BtnReport, self.OnBtnReportClick)
|
||
|
XUiHelper.RegisterClickEvent(self, self.BtnPraise, self.OnBtnPraiseClick)
|
||
|
XUiHelper.RegisterClickEvent(self, self.BtnViewJb, self.OnBtnViewJbClick)
|
||
|
end
|
||
|
-- auto
|
||
|
|
||
|
-- function XUiPanelPersonalDetails:OnBtnCopyClick(...)
|
||
|
-- local id = self.Id
|
||
|
-- if id ~= nil then
|
||
|
-- CS.XAppPlatBridge.CopyStringToClipboard(tostring(id))
|
||
|
-- end
|
||
|
-- XUiManager.TipCode(XCode.Success)
|
||
|
-- end
|
||
|
|
||
|
function XUiPanelPersonalDetails:OnSliderValueChanged()
|
||
|
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:OnBtnViewClick()
|
||
|
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:OnBtnContentClick()
|
||
|
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:OnBtnDormitoryClick()
|
||
|
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:OnBtnPrivateChatClick()
|
||
|
self.RootUi:OnBtnBackClick()
|
||
|
|
||
|
XUiHelper.CloseUiChatServeMain()
|
||
|
|
||
|
if XLuaUiManager.IsUiShow("UiSocial") then
|
||
|
XLuaUiManager.PopThenOpen("UiSocial", function()
|
||
|
XEventManager.DispatchEvent(XEventId.EVENT_FRIEND_OPEN_PRIVATE_VIEW, self.Id)
|
||
|
end)
|
||
|
else
|
||
|
XLuaUiManager.Open("UiSocial", function()
|
||
|
XEventManager.DispatchEvent(XEventId.EVENT_FRIEND_OPEN_PRIVATE_VIEW, self.Id)
|
||
|
end)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:OnBtnAssistanceClick()
|
||
|
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:OnBtnDeleteClick()
|
||
|
--确认删除好友的回调
|
||
|
local sureCallBack = function()
|
||
|
local callBack = function()
|
||
|
local uisocial = XUiManager.FindClassType("UiSocial")
|
||
|
if uisocial ~= nil then
|
||
|
uisocial:OnBtnBackClick()
|
||
|
end
|
||
|
end
|
||
|
local removeIds = {}
|
||
|
table.insert(removeIds, self.Id)
|
||
|
XDataCenter.SocialManager.DeleteFriends(removeIds, callBack)
|
||
|
end
|
||
|
local removeTip = CS.XTextManager.GetText("FriendRemoveTip")
|
||
|
XUiManager.DialogTip("", removeTip, XUiManager.DialogType.Normal, nil, sureCallBack)
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:OnBtnAddClick()
|
||
|
XDataCenter.SocialManager.ApplyFriend(self.Id)
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:OnBtnReportClick()
|
||
|
--举报
|
||
|
self.RootUi.XUiPanelJubao:Refresh(self.Info)
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:OnBtnViewJbClick()
|
||
|
local sureCallBack = function()
|
||
|
|
||
|
end
|
||
|
local data = XDataCenter.SocialManager.GetFetterTableDataByLevel(tonumber(self.Add))
|
||
|
if data then
|
||
|
local removeTip = "与这位好友组队参战时,最大生命提升" .. data.Add .. "%"--CS.XTextManager.GetText("FriendRemoveTip")
|
||
|
XUiManager.DialogTip("", removeTip, XUiManager.DialogType.Normal, nil, sureCallBack)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:SetIsShow(code)
|
||
|
self.GameObject.gameObject:SetActive(code)
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:Refresh(personalInfo)
|
||
|
self.XUiPanelCombat:Refresh(personalInfo.TeamData, self.RootUi)--小队
|
||
|
self.XUiPanelSupport:Refresh(personalInfo.AssistData, self.RootUi)--助战
|
||
|
|
||
|
local playerData = personalInfo.PlayerData
|
||
|
self.Info = playerData
|
||
|
self.Id = playerData.Id
|
||
|
self.TxtName.text = playerData.Name
|
||
|
self.TxtLevel.text = playerData.Level
|
||
|
self.TxtIdcode.text = playerData.Id
|
||
|
self.TxtCount.text = playerData.Likes
|
||
|
if playerData.Birthday == nil then
|
||
|
self.TxtBirthday.text = "未登记"
|
||
|
else
|
||
|
self.TxtBirthday.text = CS.XTextManager.GetText("Birthday", playerData.Birthday.Mon, playerData.Birthday.Day)
|
||
|
end
|
||
|
local info = XPlayerManager.GetHeadPortraitInfoById(playerData.CurrHeadPortraitId)
|
||
|
if (info ~= nil) then
|
||
|
self.RootUi:SetUiSprite(self.ImgIcon, info.ImgSrc)
|
||
|
end
|
||
|
self.TxtTeamName.text = "暂无军团"
|
||
|
self.BtnViewTeam.gameObject:SetActive(false)
|
||
|
|
||
|
--羁绊
|
||
|
local Level = XDataCenter.SocialManager.GetFriendExpLevel(self.Id)
|
||
|
if personalInfo.FetterExp ~= nil then
|
||
|
if Level == 1 then
|
||
|
local template = XDataCenter.SocialManager.GetFetterTableDataByLevel(Level)
|
||
|
self.TxtJBPercent.text = personalInfo.FetterExp .. "/" .. template.Exp
|
||
|
self.Slider.value = personalInfo.FetterExp / template.Exp
|
||
|
else
|
||
|
local template = XDataCenter.SocialManager.GetFetterTableDataByLevel(Level)
|
||
|
local lastTemplate = XDataCenter.SocialManager.GetFetterTableDataByLevel(Level - 1)
|
||
|
self.TxtJBPercent.text = (personalInfo.FetterExp - lastTemplate.Exp) .. "/" .. (template.Exp - lastTemplate.Exp)
|
||
|
self.Slider.value = (personalInfo.FetterExp - lastTemplate.Exp) / (template.Exp - lastTemplate.Exp)
|
||
|
end
|
||
|
self.TxtJBLevel.text = Level
|
||
|
self.Add = Level
|
||
|
elseif XDataCenter.SocialManager.CheckIsFriend(self.Id) then
|
||
|
self.TxtJBLevel.text = 1
|
||
|
self.TxtJBPercent.text = "0" .. "/" .. XDataCenter.SocialManager.GetFetterTableDataByLevel(2).Exp
|
||
|
self.Slider.value = 0
|
||
|
self.Add = 1
|
||
|
else
|
||
|
self.BtnViewJb.transform.parent.gameObject:SetActive(false)
|
||
|
end
|
||
|
|
||
|
self:SetBtnStatus(personalInfo.IsFriend)
|
||
|
|
||
|
self:SetIsShow(true)
|
||
|
end
|
||
|
|
||
|
function XUiPanelPersonalDetails:SetBtnStatus(isFriend)
|
||
|
if self.Id == XPlayer.Id then
|
||
|
self.BtnAdd.gameObject:SetActive(false)
|
||
|
self.BtnDelete.gameObject:SetActive(false)
|
||
|
self.BtnReport.gameObject:SetActive(false)
|
||
|
self.BtnDormitory.gameObject:SetActive(false)
|
||
|
self.BtnPrivateChat.gameObject:SetActive(false)
|
||
|
self.BtnAssistance.gameObject:SetActive(false)
|
||
|
self.BtnDormitoryDis.gameObject:SetActive(false)
|
||
|
self.BtnAssistanceDis.gameObject:SetActive(false)
|
||
|
elseif isFriend then
|
||
|
self.BtnAdd.gameObject:SetActive(false)
|
||
|
self.BtnDelete.gameObject:SetActive(true)
|
||
|
self.BtnReport.gameObject:SetActive(true)
|
||
|
self.BtnDormitory.gameObject:SetActive(false)
|
||
|
self.BtnPrivateChat.gameObject:SetActive(true)
|
||
|
self.BtnAssistance.gameObject:SetActive(false)
|
||
|
self.BtnDormitoryDis.gameObject:SetActive(true)
|
||
|
self.BtnAssistanceDis.gameObject:SetActive(true)
|
||
|
else
|
||
|
self.BtnAdd.gameObject:SetActive(true)
|
||
|
self.BtnDelete.gameObject:SetActive(false)
|
||
|
self.BtnReport.gameObject:SetActive(true)
|
||
|
self.BtnDormitory.gameObject:SetActive(false)
|
||
|
self.BtnPrivateChat.gameObject:SetActive(false)
|
||
|
self.BtnAssistance.gameObject:SetActive(false)
|
||
|
self.BtnDormitoryDis.gameObject:SetActive(false)
|
||
|
self.BtnAssistanceDis.gameObject:SetActive(false)
|
||
|
end
|
||
|
end
|
||
|
return XUiPanelPersonalDetails
|