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,160 @@
|
||||
local FriendHeadCtrl = class("FriendHeadCtrl", BaseCtrl)
|
||||
FriendHeadCtrl._mapNodeConfig = {
|
||||
txtWindowTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_SelectHead"
|
||||
},
|
||||
imgReviewHead = {sComponentName = "Image"},
|
||||
srHeadList = {
|
||||
sComponentName = "LoopScrollView"
|
||||
},
|
||||
txtReview = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_HeadReview"
|
||||
},
|
||||
btnDetail = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Detail"
|
||||
},
|
||||
txtSource = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "ItemTips_GetWay"
|
||||
},
|
||||
imgSourceTip = {},
|
||||
txtSourceCn = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "ItemTips_GetWay"
|
||||
},
|
||||
txtSourceTip = {sComponentName = "TMP_Text"},
|
||||
btnClose = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Cancel"
|
||||
},
|
||||
btnCancel = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Cancel"
|
||||
},
|
||||
btnConfirm1 = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Confirm"
|
||||
},
|
||||
txtBtnConfirm = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_Btn_Confirm"
|
||||
},
|
||||
txtBtnCancel = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Friend_Btn_Cancel"
|
||||
}
|
||||
}
|
||||
FriendHeadCtrl._mapEventConfig = {}
|
||||
function FriendHeadCtrl:Open()
|
||||
self:Refresh()
|
||||
self:PlayInAni()
|
||||
end
|
||||
function FriendHeadCtrl:Refresh()
|
||||
self.bTipsOpen = false
|
||||
self._mapNode.imgSourceTip:SetActive(self.bTipsOpen)
|
||||
self.tbHead = PlayerData.HeadData:GetPlayerHeadList()
|
||||
self.nSelectIndex = 1
|
||||
self.nCurHead = PlayerData.Base:GetPlayerHeadId()
|
||||
local nHeadNum = #self.tbHead
|
||||
if 0 < nHeadNum then
|
||||
self:SetPngSprite(self._mapNode.imgReviewHead, self.tbHead[1].mapCfg.Icon)
|
||||
self._mapNode.btnDetail.gameObject:SetActive(self.tbHead[1].mapCfg.Desc ~= "")
|
||||
NovaAPI.SetTMPText(self._mapNode.txtSourceTip, self.tbHead[1].mapCfg.Desc)
|
||||
end
|
||||
self._mapNode.srHeadList:Init(nHeadNum, self, self.OnGridRefresh, self.OnGridBtnClick)
|
||||
end
|
||||
function FriendHeadCtrl:OnGridRefresh(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
local mapData = self.tbHead[nIndex]
|
||||
local imgHeadIcon = goGrid.transform:Find("btnGrid/AnimRoot/imgCharIcon"):GetComponent("Image")
|
||||
local imgCur1 = goGrid.transform:Find("btnGrid/AnimRoot/imgCur1").gameObject
|
||||
local imgCur2 = goGrid.transform:Find("btnGrid/AnimRoot/imgCur2").gameObject
|
||||
local txtCur = goGrid.transform:Find("btnGrid/AnimRoot/imgCur2/txtCur"):GetComponent("TMP_Text")
|
||||
local imgSelect = goGrid.transform:Find("btnGrid/AnimRoot/imgSelect").gameObject
|
||||
local imgLockMask = goGrid.transform:Find("btnGrid/AnimRoot/imgLockMask").gameObject
|
||||
local mapCfg = mapData.mapCfg
|
||||
self:SetPngSprite(imgHeadIcon, mapCfg.Icon)
|
||||
NovaAPI.SetTMPText(txtCur, ConfigTable.GetUIText("Friend_CurSelect"))
|
||||
imgSelect:SetActive(nIndex == self.nSelectIndex)
|
||||
imgCur1:SetActive(mapData.nId == self.nCurHead)
|
||||
imgCur2:SetActive(mapData.nId == self.nCurHead)
|
||||
imgLockMask:SetActive(mapData.nUnlock == 0)
|
||||
local redDot = goGrid.transform:Find("btnGrid/AnimRoot/redDot").gameObject
|
||||
RedDotManager.RegisterNode(RedDotDefine.Friend_Head_Item, mapData.nId, redDot, nil, nil, true)
|
||||
end
|
||||
function FriendHeadCtrl:OnGridBtnClick(goGrid, gridIndex)
|
||||
self.bTipsOpen = false
|
||||
self._mapNode.imgSourceTip:SetActive(self.bTipsOpen)
|
||||
local nIndex = gridIndex + 1
|
||||
local mapData = self.tbHead[nIndex]
|
||||
if self.nSelectIndex == nIndex then
|
||||
return
|
||||
end
|
||||
local imgSelected = goGrid.transform:Find("btnGrid/AnimRoot/imgSelect").gameObject
|
||||
imgSelected:SetActive(true)
|
||||
self:SetPngSprite(self._mapNode.imgReviewHead, mapData.mapCfg.Icon)
|
||||
self._mapNode.btnDetail.gameObject:SetActive(mapData.mapCfg.Desc ~= "")
|
||||
NovaAPI.SetTMPText(self._mapNode.txtSourceTip, mapData.mapCfg.Desc)
|
||||
local sPath = "Viewport/Content/" .. tostring(self.nSelectIndex - 1) .. "/btnGrid/AnimRoot/imgSelect"
|
||||
local goSelectHead = self._mapNode.srHeadList.transform:Find(sPath)
|
||||
if goSelectHead then
|
||||
goSelectHead.gameObject:SetActive(false)
|
||||
end
|
||||
self.nSelectIndex = nIndex
|
||||
RedDotManager.SetValid(RedDotDefine.Friend_Head_Item, mapData.nId, false)
|
||||
end
|
||||
function FriendHeadCtrl:PlayInAni()
|
||||
self.gameObject:SetActive(true)
|
||||
self.ani:Play("t_window_04_t_in")
|
||||
EventManager.Hit(EventId.TemporaryBlockInput, 0.3)
|
||||
end
|
||||
function FriendHeadCtrl:PlayOutAni()
|
||||
self.ani:Play("t_window_04_t_out")
|
||||
self:AddTimer(1, 0.2, "Close", true, true, true)
|
||||
end
|
||||
function FriendHeadCtrl:Close()
|
||||
for _, v in ipairs(self.tbHead) do
|
||||
RedDotManager.SetValid(RedDotDefine.Friend_Head_Item, v.nId, false)
|
||||
end
|
||||
self.gameObject:SetActive(false)
|
||||
end
|
||||
function FriendHeadCtrl:Awake()
|
||||
self.ani = self.gameObject.transform:GetComponent("Animator")
|
||||
self.nSelectIndex = 1
|
||||
self.nEquipIndex = nil
|
||||
self.tbGridRedDot = {}
|
||||
end
|
||||
function FriendHeadCtrl:OnEnable()
|
||||
end
|
||||
function FriendHeadCtrl:OnDisable()
|
||||
end
|
||||
function FriendHeadCtrl:OnDestroy()
|
||||
end
|
||||
function FriendHeadCtrl:OnBtnClick_Cancel(btn)
|
||||
EventManager.Hit("FriendClosePop")
|
||||
end
|
||||
function FriendHeadCtrl:OnBtnClick_Confirm(btn)
|
||||
if self.tbHead[self.nSelectIndex].nId == self.nCurHead then
|
||||
EventManager.Hit("FriendClosePop")
|
||||
return
|
||||
end
|
||||
local mapData = self.tbHead[self.nSelectIndex]
|
||||
if mapData.nUnlock == 0 then
|
||||
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("PlayerHead_Lock_Tip"))
|
||||
return
|
||||
end
|
||||
local nHeadIconId = mapData.nId
|
||||
local callback = function()
|
||||
EventManager.Hit("FriendClosePop")
|
||||
EventManager.Hit("FriendRefreshHead")
|
||||
end
|
||||
PlayerData.HeadData:SendPlayerHeadIconSetReq(nHeadIconId, callback)
|
||||
end
|
||||
function FriendHeadCtrl:OnBtnClick_Detail()
|
||||
self.bTipsOpen = not self.bTipsOpen
|
||||
self._mapNode.imgSourceTip.gameObject:SetActive(self.bTipsOpen)
|
||||
end
|
||||
return FriendHeadCtrl
|
||||
Reference in New Issue
Block a user