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,173 @@
|
||||
local FriendListCtrl = class("FriendListCtrl", BaseCtrl)
|
||||
FriendListCtrl._mapNodeConfig = {
|
||||
imgEmptyBg = {},
|
||||
txtEmpty = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_ListNone"
|
||||
},
|
||||
srFriendList = {
|
||||
sComponentName = "LoopScrollView"
|
||||
},
|
||||
txtFriendCount = {sComponentName = "TMP_Text"},
|
||||
btnGetAll = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_GetAll"
|
||||
},
|
||||
btnSendAll = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_SendAll"
|
||||
},
|
||||
txtGetAll = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_Btn_Get"
|
||||
},
|
||||
txtSendAll = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_Btn_Send"
|
||||
},
|
||||
txtToday = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_Today"
|
||||
},
|
||||
txtEnergyCount = {sComponentName = "TMP_Text"},
|
||||
imgTodayEnergy = {sComponentName = "Image"},
|
||||
btnSwitch = {
|
||||
nCount = 2,
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Switch"
|
||||
},
|
||||
SwitchOn = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_Btn_Open"
|
||||
},
|
||||
SwitchOff = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_Btn_Close"
|
||||
},
|
||||
goSwitch = {},
|
||||
redDotGetAll = {}
|
||||
}
|
||||
FriendListCtrl._mapEventConfig = {
|
||||
FriendRefreshList = "RefreshList",
|
||||
FriendRefreshEnergy = "RefreshEnergy"
|
||||
}
|
||||
FriendListCtrl._mapRedDotConfig = {
|
||||
[RedDotDefine.Friend_Energy] = {
|
||||
sNodeName = "redDotGetAll"
|
||||
}
|
||||
}
|
||||
function FriendListCtrl:Refresh()
|
||||
self.bOperating = false
|
||||
self:RefreshSwitch()
|
||||
self:ChangeShow(false)
|
||||
local callback = function()
|
||||
self:ChangeShow(true)
|
||||
self:RefreshList()
|
||||
self:RefreshEnergy()
|
||||
end
|
||||
PlayerData.Friend:SendFriendListGetReq(callback)
|
||||
end
|
||||
function FriendListCtrl:ChangeShow(bShow)
|
||||
self._mapNode.btnGetAll.gameObject:SetActive(bShow)
|
||||
self._mapNode.btnSendAll.gameObject:SetActive(bShow)
|
||||
self._mapNode.goSwitch.gameObject:SetActive(bShow)
|
||||
end
|
||||
function FriendListCtrl:RefreshSwitch()
|
||||
self._mapNode.btnSwitch[1].gameObject:SetActive(not self.bOperating)
|
||||
self._mapNode.btnSwitch[2].gameObject:SetActive(self.bOperating)
|
||||
end
|
||||
function FriendListCtrl:RefreshEnergy()
|
||||
NovaAPI.SetTMPText(self._mapNode.txtEnergyCount, PlayerData.Friend:GetEnergyCount() .. "/" .. self.nMaxEnergy)
|
||||
local itemInfo = ConfigTable.GetData_Item(AllEnum.CoinItemId.Energy)
|
||||
if itemInfo then
|
||||
self:SetPngSprite(self._mapNode.imgTodayEnergy, itemInfo.Icon)
|
||||
end
|
||||
end
|
||||
function FriendListCtrl:RefreshList()
|
||||
local nFriendNum = PlayerData.Friend:GetFriendListNum()
|
||||
self._mapNode.srFriendList.gameObject:SetActive(0 < nFriendNum)
|
||||
self._mapNode.imgEmptyBg:SetActive(nFriendNum == 0)
|
||||
if 0 < nFriendNum then
|
||||
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
|
||||
self:UnbindCtrlByNode(objCtrl)
|
||||
self.tbGridCtrl[nInstanceId] = nil
|
||||
end
|
||||
self.tbFriendList = PlayerData.Friend:GetFriendListData()
|
||||
self._mapNode.srFriendList:Init(nFriendNum, self, self.OnGridRefresh)
|
||||
end
|
||||
NovaAPI.SetTMPText(self._mapNode.txtFriendCount, nFriendNum .. "/" .. ConfigTable.GetConfigNumber("FriendMax"))
|
||||
end
|
||||
function FriendListCtrl:OnGridRefresh(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
local mapFriend = self.tbFriendList[nIndex]
|
||||
local nInstanceID = goGrid:GetInstanceID()
|
||||
if not self.tbGridCtrl[nInstanceID] then
|
||||
self.tbGridCtrl[nInstanceID] = self:BindCtrlByNode(goGrid, "Game.UI.FriendEx.FriendGridCtrl")
|
||||
end
|
||||
self.tbGridCtrl[nInstanceID]:SetType(self.bOperating and 1 or 4)
|
||||
self.tbGridCtrl[nInstanceID]:Refresh(mapFriend)
|
||||
end
|
||||
function FriendListCtrl:Awake()
|
||||
self.tbGridCtrl = {}
|
||||
self.nMaxEnergy = ConfigTable.GetConfigNumber("FriendReceiveEnergyMax")
|
||||
end
|
||||
function FriendListCtrl:OnEnable()
|
||||
end
|
||||
function FriendListCtrl:OnDisable()
|
||||
for nInstanceId, objCtrl in pairs(self.tbGridCtrl) do
|
||||
self:UnbindCtrlByNode(objCtrl)
|
||||
self.tbGridCtrl[nInstanceId] = nil
|
||||
end
|
||||
self.tbGridCtrl = {}
|
||||
end
|
||||
function FriendListCtrl:OnDestroy()
|
||||
end
|
||||
function FriendListCtrl:OnBtnClick_GetAll()
|
||||
local nCount = PlayerData.Friend:GetEnergyCount()
|
||||
if nCount >= self.nMaxEnergy then
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Friend_MaxGet"))
|
||||
return
|
||||
end
|
||||
if not PlayerData.Friend:JudgeEnergyGetAble() then
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Friend_GetFail"))
|
||||
return
|
||||
end
|
||||
local callback = function(UIds)
|
||||
if #UIds == 0 then
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Friend_GetFail"))
|
||||
else
|
||||
self:RefreshEnergy()
|
||||
if not self.bOperating then
|
||||
self:RefreshList()
|
||||
end
|
||||
end
|
||||
end
|
||||
PlayerData.Friend:SendFriendReceiveEnergyReq({}, callback)
|
||||
end
|
||||
function FriendListCtrl:OnBtnClick_SendAll()
|
||||
if not PlayerData.Friend:JudgeEnergySendAble() then
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Friend_SendFail"))
|
||||
return
|
||||
end
|
||||
local callback = function(UIds)
|
||||
if #UIds == 0 then
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Friend_SendFail"))
|
||||
else
|
||||
EventManager.Hit(EventId.OpenMessageBox, {
|
||||
nType = AllEnum.MessageBox.Tips,
|
||||
bPositive = true,
|
||||
sContent = ConfigTable.GetUIText("Friend_SendAllSuc")
|
||||
})
|
||||
if not self.bOperating then
|
||||
self:RefreshList()
|
||||
end
|
||||
end
|
||||
end
|
||||
PlayerData.Friend:SendFriendSendEnergyReq({}, callback)
|
||||
end
|
||||
function FriendListCtrl:OnBtnClick_Switch(btn, nIndex)
|
||||
self.bOperating = nIndex == 1
|
||||
self:RefreshSwitch()
|
||||
self:RefreshList()
|
||||
end
|
||||
return FriendListCtrl
|
||||
Reference in New Issue
Block a user