PGRData/Script/matrix/xui/xuipersonalinfo/panelpersonaldetails/XUiPanelPersonalDetails.lua

276 lines
11 KiB
Lua
Raw Normal View History

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