| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- local UIChangeHeadFrameView = require("UIRoleMessage/UIChangeHeadFrameView_Generate")
- local TaskJumpCtr = require("Common/TaskJumpCtr")
- local IconItemCtr = require("Common/IconItemCtr")
- function UIChangeHeadFrameView:OnAwake(data)
- self.controller = require("UIRoleMessage/UIChangeHeadFrameCtr"):new()
- self.controller:Init(self)
- self.controller:SetData(data)
- end
- function UIChangeHeadFrameView:AddEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.HEAD_FRAME_CHANGE, self, self.RefreshHeadFrameList);
- end
- function UIChangeHeadFrameView:FillContent(data, uiBase)
- self.uiBase = uiBase
- local gameObject = self.uiBase:GetRoot()
- if gameObject ~= nil then
- self.gameObject = gameObject
- self.transform = gameObject.transform
- end
- self:InitGenerate(self.transform, data)
- self:Init()
- end
- function UIChangeHeadFrameView:Init()
- self.curSelectedFrameData = nil
- self.curSelectedItem = nil
- self:SetHead()
- end
- function UIChangeHeadFrameView:OnPageInEnd()
- self:RefreshHeadFrameList()
- self.super.OnPageInEnd(self)
- end
- function UIChangeHeadFrameView:RemoveEventListener()
- ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
- end
- function UIChangeHeadFrameView:AddUIEventListener()
- self.uiBase:AddButtonEventListener(self.btnClose.button, self, self.OnCloseBtnClick)
- self.uiBase:AddButtonEventListener(self.btnUsed.button, self, self.OnChangeBtnClick)
- self.uiBase:AddButtonEventListener(self.btnGet.button, self, self.OnGetBtnClick)
- self.uiBase:AddButtonEventListener(self.allAtrBtn.button, self, self.OnAllAttrBtnClick)
- end
- function UIChangeHeadFrameView:OnHide()
- end
- function UIChangeHeadFrameView:OnShow(data)
- self.controller:SetData(data)
- end
- function UIChangeHeadFrameView:OnClose()
- ManagerContainer.DataMgr.HeadFrameDataMgr:SaveRedPointData()
- end
- function UIChangeHeadFrameView:OnDispose()
- self.headFrameList.loopVerticalScrollRect:ClearCells()
- self.curSelectedFrameData = nil
- self.curSelectedItem = nil
- self.controller:OnDispose()
- end
- function UIChangeHeadFrameView:SetHead()
- local curRoleLv = ManagerContainer.DataMgr.UserData:GetRoleLv()
- local jobIcon = ManagerContainer.DataMgr.UserData:GetJobIcon()
- local headIcon = ManagerContainer.DataMgr.UserData:GetUserHeadIcon()
- local _fakerData = {Level = curRoleLv, ProfessionIcon = jobIcon, HeadIcon = headIcon, IsHero = true};
- local _headFrameId = ManagerContainer.DataMgr.UserData:GetHeadFrameId();
- CommonUtil.SetPlayerHeadAndFrame(self, self.headItem, _fakerData,false, _headFrameId, self, self.OnClickHead);
- end
- function UIChangeHeadFrameView:RefreshHeadFrameList()
- local _headFrameId = ManagerContainer.DataMgr.UserData:GetHeadFrameId();
- self:PreviewHeadFrame(_headFrameId)
- -- self.headFrameList.loopVerticalScrollRect:ClearCells()
- local frameList = ManagerContainer.DataMgr.HeadFrameDataMgr:GetAllHeadFrames()
- CommonUtil.LoopGridViewEleCreateNew(self,self.headFrameList.loopVerticalScrollRect,nil,frameList,0,self,self.SetHeadFrameItem);
- end
- function UIChangeHeadFrameView:SetHeadFrameItem(itemLua, idx, frameData)
- CommonUtil.LoadIcon(self, frameData.icon, function (sprite)
- itemLua.frameImg.image.sprite = sprite
- end,self,"HeadFrameAsync"..idx)
-
- itemLua.used:SetActive(frameData:IsUsing())
- itemLua.locked:SetActive((frameData:IsGot() or frameData:IsLoss()))
- itemLua.redPoint:SetActive(frameData.redPointState);
- itemLua.limited:SetActive(frameData:GetLeftTime() > 0)
- itemLua.selected:SetActive(self.curSelectedFrameData == frameData)
- if self.curSelectedFrameData == frameData then
- self.curSelectedItem = itemLua
- end
- self.uiBase:AddButtonUniqueEventListener(itemLua.frameImg.button, self, self.OnItemClick, frameData, itemLua)
- end
- function UIChangeHeadFrameView:OnItemClick(btn, params)
- local frameData = params[0]
- local itemLua = params[1]
- if self.curSelectedItem ~= nil then
- self.curSelectedItem.selected:SetActive(false)
- end
- itemLua.selected:SetActive(true)
- itemLua.redPoint:SetActive(false)
- self.curSelectedItem = itemLua
- frameData:SetRedPointStatus(false)
- self:PreviewHeadFrame(frameData.frameId)
- end
- function UIChangeHeadFrameView:PreviewHeadFrame(headFrameId)
- local frameData = ManagerContainer.DataMgr.HeadFrameDataMgr:GetHeadFrameById(headFrameId)
- if frameData ~= nil then
- self:SetFrameDataInfo(frameData)
- CommonUtil.LoadIcon(self, frameData.icon, function (sprite)
- self.headItem.frame.image.sprite = sprite
- end)
-
- if frameData:IsUsing() or frameData:IsActivated() then
- self.btnUsed:SetActive(true)
- self.btnGet:SetActive(false)
- self.usingTip:SetActive(false)
- self.limitedNode:SetActive(true)
- elseif frameData:IsGot() then
- self.btnUsed:SetActive(false)
- self.btnGet:SetActive(true)
- self.usingTip:SetActive(false)
- self.limitedNode:SetActive(false)
- else
- self.limitedNode:SetActive(false)
- self.btnUsed:SetActive(false)
- self.btnGet:SetActive(true)
- self.usingTip:SetActive(false)
- end
- self.frameNode:SetActive(true)
- else
- self.frameNode:SetActive(false)
- self.btnUsed:SetActive(false)
- self.btnGet:SetActive(false)
- self.usingTip:SetActive(false)
- end
- self.curSelectedFrameData = frameData
- end
- function UIChangeHeadFrameView:OnClickHead()
- -- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(I18N.T("ChatError1")) --这是你自己
- end
- function UIChangeHeadFrameView:SetFrameDataInfo(frameData)
- -- LogError("click frameId:" .. frameData.frameId)
- self:HideAllAttrGo()
- self.headFrameName.text.text = frameData.name
- self.headFrameDesc.text.text = frameData.desc
- self.leftTimeTxt.text.text = self:CalcTimeStr(frameData:GetLeftTime())
-
- local attrs = frameData:GetAttrs()
- if attrs ~= nil then
- for i =1, #attrs do
- local attr = attrs[i]
- local attrLua = self:GetAttrItemGo(i)
- if attrLua ~= nil and attr ~= nil then
- attrLua.nameText.text.text = I18N.T("Attr_"..attr[1])
- attrLua.numberText.text.text = CommonUtil.HeroAttrFormatValueNoSign(attr[1], attr[2])
- attrLua:SetActive(true)
- end
- end
- self.attrNone:SetActive(#attrs == 0)
- else
- self.attrNone:SetActive(true)
- end
- end
- function UIChangeHeadFrameView:HideAllAttrGo()
- for idx = 1, 3 do
- local go = self:GetAttrItemGo(idx)
- if go ~= nil then
- go:SetActive(false)
- end
- end
- end
- function UIChangeHeadFrameView:GetAttrItemGo(idx)
- if idx == 1 then
- return self.attrBox.attrItem1
- elseif idx == 2 then
- return self.attrBox.attrItem2
- elseif idx == 3 then
- return self.attrBox.attrItem3
- end
- return nil
- end
- function UIChangeHeadFrameView:CalcTimeStr(_timeSecond)
- local _timeStr = I18N.T("Forever"); --永久
- if _timeSecond >= 0 then
- _timeStr = tostring(_timeSecond);
- local _timeNumber = tonumber(_timeStr)
- if _timeSecond >= 60 and _timeSecond < Constant.OneDaySeconds then
- _timeStr = DateTimeUtil.convertSeconds2TimeStr1(_timeNumber, true, false, false);
- elseif _timeSecond >= Constant.OneDaySeconds then
- _timeStr = DateTimeUtil.convertSeconds2TimeStr1(_timeNumber, false, false, false);
- else
- _timeStr = "1" .. I18N.T("MINS");
- end
- end
- return _timeStr;
- end
- function UIChangeHeadFrameView:OnChangeBtnClick()
- if self.curSelectedFrameData == nil then
- return
- end
- if self.curSelectedFrameData:IsUsing() then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("已使用")
- return
- end
- ManagerContainer.DataMgr.HeadFrameDataMgr:SendChangeHeadFrameReq(self.curSelectedFrameData.frameId)
- end
- function UIChangeHeadFrameView:OnGetBtnClick()
- if self.curSelectedFrameData == nil then
- return
- end
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(self.curSelectedFrameData.tips)
- end
- function UIChangeHeadFrameView:OnAllAttrBtnClick()
- local allFrames = ManagerContainer.DataMgr.HeadFrameDataMgr:GetAllHeadFrames()
- local attrList = {}
- for i = 7, 16 do
- if i ~= 8 then
- attrList[i] = 0
- end
- end
- if allFrames ~= nil then
- for i=1, #allFrames do
- local frame = allFrames[i]
- if frame:IsOwned() then
- local attrs = frame:GetAttrs()
- if attrs ~= nil then
- for j = 1, #attrs do
- if attrList[attrs[j][1]] == nil then
- attrList[attrs[j][1]] = attrs[j][2]
- else
- attrList[attrs[j][1]] = attrList[attrs[j][1]] + attrs[j][2]
- end
- end
- end
- end
- end
- end
- local baseAttrs = {}
- for key, value in pairs(attrList) do
- table.insert(baseAttrs, {key, value})
- end
- table.sort(baseAttrs, function(a, b)
- return a[1] < b[1]
- end)
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIFashionTotal,{title="HeadFrameTotalProperty", attrs=baseAttrs})
- end
- function UIChangeHeadFrameView:OnCloseBtnClick()
- ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIChangeHeadFrame);
- end
- return UIChangeHeadFrameView
|