Initial version - 1.2.0.60
EN: 1.2.0.60 CN: 1.2.0.61 JP: 1.2.0.63 KR: 1.2.0.67
This commit is contained in:
@@ -0,0 +1,287 @@
|
||||
local FriendGridCtrl = class("FriendGridCtrl", BaseCtrl)
|
||||
local GridType = {
|
||||
Friend = 1,
|
||||
Request = 2,
|
||||
Search = 3,
|
||||
Energy = 4
|
||||
}
|
||||
FriendGridCtrl._mapNodeConfig = {
|
||||
imgHead = {sComponentName = "Image"},
|
||||
txtWorldClass = {sComponentName = "TMP_Text"},
|
||||
txtRankCn = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "MainView_RANK"
|
||||
},
|
||||
txtName = {sComponentName = "TMP_Text"},
|
||||
txtTitle = {sComponentName = "TMP_Text"},
|
||||
txtTitleName = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_TitleTag"
|
||||
},
|
||||
imgStar = {},
|
||||
txtLastLogin = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_Login"
|
||||
},
|
||||
txtLoginTime1 = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_24Hours"
|
||||
},
|
||||
txtLoginTime2 = {sComponentName = "TMP_Text"},
|
||||
txtUID = {sComponentName = "TMP_Text"},
|
||||
txtUIDCn = {sComponentName = "TMP_Text", sLanguageId = "Friend_UID"},
|
||||
goEnergy = {},
|
||||
btnSend = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Send"
|
||||
},
|
||||
imgSend = {},
|
||||
btnGet = {
|
||||
nCount = 2,
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Get"
|
||||
},
|
||||
imgGet = {},
|
||||
goRequest = {},
|
||||
btnAdopt = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Adopt"
|
||||
},
|
||||
btnRefuse = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Refuse"
|
||||
},
|
||||
goSearch = {},
|
||||
btnAdd = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Add"
|
||||
},
|
||||
imgUnable = {},
|
||||
txtUnable = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_HasRequested"
|
||||
},
|
||||
goFriend = {},
|
||||
btnStar = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Star"
|
||||
},
|
||||
imgStarOn = {},
|
||||
imgStarOff = {},
|
||||
btnDel = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Delete"
|
||||
},
|
||||
btnDetail = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Detail"
|
||||
},
|
||||
goHonorTitle_ = {
|
||||
nCount = 3,
|
||||
sCtrlName = "Game.UI.FriendEx.HonorTitleCtrl"
|
||||
}
|
||||
}
|
||||
FriendGridCtrl._mapEventConfig = {}
|
||||
function FriendGridCtrl:SetType(nType)
|
||||
self.nType = nType
|
||||
self._mapNode.goEnergy:SetActive(nType == GridType.Energy)
|
||||
self._mapNode.goRequest:SetActive(nType == GridType.Request)
|
||||
self._mapNode.goSearch:SetActive(nType == GridType.Search)
|
||||
self._mapNode.goFriend:SetActive(nType == GridType.Friend)
|
||||
end
|
||||
function FriendGridCtrl:Refresh(mapFriend)
|
||||
if self.nType == GridType.Search then
|
||||
self._mapNode.goSearch:SetActive(not PlayerData.Friend:JudgeIsFriend(mapFriend.nUId))
|
||||
end
|
||||
self.mapFriend = mapFriend
|
||||
self:RefreshInfo()
|
||||
self:RefreshStar()
|
||||
self:RefreshSend()
|
||||
self:RefreshGet()
|
||||
self:RefreshAdd()
|
||||
self:RefreshHonorTitle()
|
||||
end
|
||||
function FriendGridCtrl:RefreshInfo()
|
||||
local mapCfg = ConfigTable.GetData("PlayerHead", self.mapFriend.nHeadIconId)
|
||||
if mapCfg then
|
||||
self:SetPngSprite(self._mapNode.imgHead, mapCfg.Icon)
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.txtWorldClass, self.mapFriend.nWorldClass)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtName, self.mapFriend.sName)
|
||||
local sTitle = orderedFormat(ConfigTable.GetUIText("FriendPanel_PlayerTitle") or "", ConfigTable.GetData("Title", self.mapFriend.nTitlePrefix).Desc, ConfigTable.GetData("Title", self.mapFriend.nTitleSuffix).Desc)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtTitle, self.mapFriend.nTitlePrefix == 0 and "" or sTitle)
|
||||
local sDate, nLoginTime = PlayerData.Friend:JudgeLogin(self.mapFriend.nLogin)
|
||||
self._mapNode.txtLoginTime1.gameObject:SetActive(nLoginTime == AllEnum.LoginTime.Today)
|
||||
self._mapNode.txtLoginTime2.gameObject:SetActive(nLoginTime ~= AllEnum.LoginTime.Today)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtLoginTime2, sDate)
|
||||
NovaAPI.SetTMPText(self._mapNode.txtUID, self.mapFriend.nUId)
|
||||
end
|
||||
function FriendGridCtrl:RefreshStar()
|
||||
self._mapNode.imgStarOn:SetActive(self.mapFriend.bStar)
|
||||
self._mapNode.imgStarOff:SetActive(not self.mapFriend.bStar)
|
||||
self._mapNode.imgStar:SetActive(self.mapFriend.bStar)
|
||||
end
|
||||
function FriendGridCtrl:RefreshSend()
|
||||
self._mapNode.btnSend.gameObject:SetActive(not self.mapFriend.bSendEnergy)
|
||||
self._mapNode.imgSend:SetActive(self.mapFriend.bSendEnergy)
|
||||
end
|
||||
function FriendGridCtrl:RefreshGet()
|
||||
local nCount = PlayerData.Friend:GetEnergyCount()
|
||||
if nCount >= self.nMaxEnergy then
|
||||
self._mapNode.btnGet[1].gameObject:SetActive(false)
|
||||
self._mapNode.btnGet[2].gameObject:SetActive(false)
|
||||
self._mapNode.imgGet:SetActive(true)
|
||||
return
|
||||
end
|
||||
self._mapNode.btnGet[1].gameObject:SetActive(self.mapFriend.nGetEnergy == 1)
|
||||
self._mapNode.btnGet[2].gameObject:SetActive(self.mapFriend.nGetEnergy == 0)
|
||||
self._mapNode.imgGet:SetActive(self.mapFriend.nGetEnergy == 2)
|
||||
end
|
||||
function FriendGridCtrl:RefreshAdd()
|
||||
for _, v in pairs(self._panel.tbAddCache) do
|
||||
if v == self.mapFriend.nUId then
|
||||
self._mapNode.btnAdd.gameObject:SetActive(false)
|
||||
self._mapNode.imgUnable:SetActive(true)
|
||||
return
|
||||
end
|
||||
end
|
||||
self._mapNode.btnAdd.gameObject:SetActive(true)
|
||||
self._mapNode.imgUnable:SetActive(false)
|
||||
end
|
||||
function FriendGridCtrl:RefreshHonorTitle()
|
||||
for i = 1, 3 do
|
||||
local tbHonorTitle = self.mapFriend.tbHonorTitle or {}
|
||||
if tbHonorTitle[i] ~= nil and tbHonorTitle[i].Id > 0 then
|
||||
local honorData = ConfigTable.GetData("Honor", tbHonorTitle[i].Id)
|
||||
self._mapNode.goHonorTitle_[i]:SetHonotTitle(honorData.Id, i == 1, tbHonorTitle[i].AffinityLV)
|
||||
end
|
||||
self._mapNode.goHonorTitle_[i].gameObject:SetActive(tbHonorTitle[i] ~= nil and tbHonorTitle[i].Id > 0)
|
||||
end
|
||||
end
|
||||
function FriendGridCtrl:Awake()
|
||||
self.nMaxEnergy = ConfigTable.GetConfigNumber("FriendReceiveEnergyMax")
|
||||
end
|
||||
function FriendGridCtrl:OnEnable()
|
||||
end
|
||||
function FriendGridCtrl:OnDisable()
|
||||
end
|
||||
function FriendGridCtrl:OnDestroy()
|
||||
end
|
||||
function FriendGridCtrl:OnBtnClick_Delete(btn)
|
||||
local confirmCallback = function()
|
||||
local callback = function()
|
||||
EventManager.Hit("FriendRefreshList")
|
||||
end
|
||||
PlayerData.Friend:SendFriendDeleteReq(self.mapFriend.nUId, callback)
|
||||
end
|
||||
local msg = {
|
||||
nType = AllEnum.MessageBox.Confirm,
|
||||
sContent = ConfigTable.GetUIText("Friend_DeleteHint"),
|
||||
callbackConfirm = confirmCallback
|
||||
}
|
||||
EventManager.Hit(EventId.OpenMessageBox, msg)
|
||||
end
|
||||
function FriendGridCtrl:OnBtnClick_Adopt(btn)
|
||||
local nFriendNum = PlayerData.Friend:GetFriendListNum()
|
||||
if nFriendNum == ConfigTable.GetConfigNumber("FriendMax") then
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("FRIEND_00"))
|
||||
return
|
||||
end
|
||||
local callback = function()
|
||||
EventManager.Hit("FriendRefreshRequest")
|
||||
end
|
||||
PlayerData.Friend:SendFriendAddAgreeReq(self.mapFriend.nUId, callback)
|
||||
end
|
||||
function FriendGridCtrl:OnBtnClick_Refuse(btn)
|
||||
local callback = function()
|
||||
EventManager.Hit("FriendRefreshRequest")
|
||||
end
|
||||
PlayerData.Friend:SendFriendInvitesDeleteReq({
|
||||
self.mapFriend.nUId
|
||||
}, callback)
|
||||
end
|
||||
function FriendGridCtrl:OnBtnClick_Add(btn)
|
||||
local nFriendNum = PlayerData.Friend:GetFriendListNum()
|
||||
if nFriendNum == ConfigTable.GetConfigNumber("FriendMax") then
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("FRIEND_00"))
|
||||
return
|
||||
end
|
||||
local callback = function()
|
||||
table.insert(self._panel.tbAddCache, self.mapFriend.nUId)
|
||||
self._mapNode.btnAdd.gameObject:SetActive(false)
|
||||
self._mapNode.imgUnable:SetActive(true)
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("FRIEND_01"))
|
||||
end
|
||||
PlayerData.Friend:SendAddFriendReq(self.mapFriend.nUId, callback)
|
||||
end
|
||||
function FriendGridCtrl:OnBtnClick_Star(btn)
|
||||
local callback = function()
|
||||
EventManager.Hit("FriendRefreshList")
|
||||
end
|
||||
PlayerData.Friend:SendFriendStarSetReq({
|
||||
self.mapFriend.nUId
|
||||
}, not self.mapFriend.bStar, callback)
|
||||
end
|
||||
function FriendGridCtrl:OnBtnClick_Send(btn)
|
||||
if self.mapFriend.bSendEnergy then
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Friend_HasSend"))
|
||||
return
|
||||
end
|
||||
local callback = function(UIds)
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Friend_SendSuc"))
|
||||
for _, nId in pairs(UIds) do
|
||||
if nId == self.mapFriend.nUId then
|
||||
self.mapFriend.bSendEnergy = true
|
||||
break
|
||||
end
|
||||
end
|
||||
self:RefreshSend()
|
||||
end
|
||||
PlayerData.Friend:SendFriendSendEnergyReq({
|
||||
self.mapFriend.nUId
|
||||
}, callback)
|
||||
end
|
||||
function FriendGridCtrl:OnBtnClick_Get(btn, nIndex)
|
||||
if nIndex == 2 and self.mapFriend.nGetEnergy == 0 then
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Friend_GetNone"))
|
||||
return
|
||||
end
|
||||
local nCount = PlayerData.Friend:GetEnergyCount()
|
||||
if nCount >= self.nMaxEnergy then
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Friend_MaxGet"))
|
||||
return
|
||||
end
|
||||
local callback = function(UIds)
|
||||
for _, nId in pairs(UIds) do
|
||||
if nId == self.mapFriend.nUId then
|
||||
self.mapFriend.nGetEnergy = 2
|
||||
break
|
||||
end
|
||||
end
|
||||
self:RefreshGet()
|
||||
EventManager.Hit("FriendRefreshEnergy")
|
||||
end
|
||||
PlayerData.Friend:SendFriendReceiveEnergyReq({
|
||||
self.mapFriend.nUId
|
||||
}, callback)
|
||||
end
|
||||
function FriendGridCtrl:OnBtnClick_Detail(btn)
|
||||
if self.nType == GridType.Search then
|
||||
local bDone = false
|
||||
for _, v in pairs(self._panel.tbAddCache) do
|
||||
if v == self.mapFriend.nUId then
|
||||
bDone = true
|
||||
break
|
||||
end
|
||||
end
|
||||
local callback = function()
|
||||
table.insert(self._panel.tbAddCache, self.mapFriend.nUId)
|
||||
self._mapNode.btnAdd.gameObject:SetActive(false)
|
||||
self._mapNode.imgUnable:SetActive(true)
|
||||
end
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.FriendCarte, self.mapFriend, self.nType, bDone, callback)
|
||||
else
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.FriendCarte, self.mapFriend, self.nType)
|
||||
end
|
||||
end
|
||||
return FriendGridCtrl
|
||||
Reference in New Issue
Block a user