| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- local UIIdolGiftItemCtr = {}
- function UIIdolGiftItemCtr:SetData(wnd, item, logicData, enterType, onClickOwner, onClickCB)
- local brief = ManagerContainer.DataMgr.IdolData:GetPlayerBriefInfoByUid(logicData.uid)
- if brief then
- local name = CommonUtil.GetVaildNickName(brief.nick_name)
- item.flag.playername.text.text = name
- local curRoleLv = brief.level
- local jobCfgId = brief.config_id
- local jobCfgData = ManagerContainer.CfgMgr:GetJobDataById(jobCfgId)
- local headIcon = CommonUtil.GetPlayerHeadIcon(brief)
- local _fakerData = {Level = curRoleLv, ProfessionIcon = jobCfgData.JobIcon, HeadIcon = headIcon, IsHero = true};
- local _headFrameId = brief.head_frame_id
- CommonUtil.SetPlayerHeadAndFrame(wnd, item.flag.headItem, _fakerData,false, _headFrameId,wnd,wnd.OnClickOtherHeadBtn,brief.uid);
- end
- if onClickOwner and onClickCB then
- item.btnSupport.button.enabled = true
- onClickOwner.uiBase:AddButtonUniqueEventListener(item.btnSupport.button, onClickOwner, onClickCB, logicData)
- else
- item.btnSupport.button.enabled = false
- end
- self:InitLoveGiftItems(wnd,item,logicData)
- end
- function UIIdolGiftItemCtr:InitLoveGiftItems(wnd,item,logicData)
- local uid = logicData.uid
- local rewardData = ManagerContainer.DataMgr.IdolData:GetFansRewardInfoByUid(uid)
- if not rewardData then
- rewardData = {hotVal = 0,rewardState={false,false,false,false,false}}
- end
- local ticket = rewardData.hotVal or 0
- local loveGiftItems = item.loveGiftItems
- if not loveGiftItems then
- loveGiftItems = {item.slider.item}
- item.loveGiftItems = loveGiftItems
- end
- local BoxData = ManagerContainer.CfgMgr:GetAidouluCfg()
- local len1 = #loveGiftItems
- local len2 = BoxData
- local maxHot = BoxData[#BoxData].ConditionHot
- item.slider.num.text.text = ticket
- item.slider.slider.maxValue = maxHot
- item.slider.slider.value = math.min(maxHot,ticket)
- if BoxData then
- local rectW = item.slider.slider.handleRect.parent.rect.width
- local defPos = item.slider.item.transform.anchoredPosition3D
- len2 = #BoxData
- for i = 1, len2 do
- local loveGiftItem = nil
- local trans = nil
- if i <= len1 then
- loveGiftItem = loveGiftItems[i]
- trans = loveGiftItem.transform
- else
- loveGiftItem = UnityEngine.GameObject.Instantiate(item.slider.item.gameObject)
- trans = loveGiftItem.transform
- trans:SetParent(item.slider.item.transform.parent)
- trans.localRotation = Quaternion.identity
- trans.localScale = Vector3.one
- if tolua.getpeer(loveGiftItem) == nil then
- tolua.setpeer(loveGiftItem, {})
- end
- local tmp = trans:Find('text/num').gameObject
- if tolua.getpeer(tmp) == nil then
- tolua.setpeer(tmp, {})
- end
- loveGiftItem.num = tmp
- tmp.text = tmp:GetComponent(Enum.TypeInfo.Text)
- local tmp = trans:Find('BtnBox').gameObject
- if tolua.getpeer(tmp) == nil then
- tolua.setpeer(tmp, {})
- end
- loveGiftItem.btnBox = tmp
- tmp.button = tmp:GetComponent(Enum.TypeInfo.Button)
- tmp.box1 = trans:Find('BtnBox/box1').gameObject
- tmp.box2 = trans:Find('BtnBox/box2').gameObject
- tmp.box3 = trans:Find('BtnBox/box3').gameObject
- tmp.box4 = trans:Find('BtnBox/box4').gameObject
- loveGiftItems[i] = loveGiftItem
- end
- loveGiftItem:SetActive(true)
- local loveVal = BoxData[i].ConditionHot
- local posX = rectW
- if maxHot > 0 then
- posX = posX * ((loveVal / maxHot) - 0.5)
- end
- trans:SetSiblingIndex(0)
- trans.anchoredPosition3D = Vector3(posX, defPos.y, defPos.z)
- loveGiftItem.num.text.text = tostring(loveVal)
- local rewardState = rewardData.rewardState
- loveGiftItem.btnBox.box1:SetActive(false)
- loveGiftItem.btnBox.box2:SetActive(false)
- loveGiftItem.btnBox.box3:SetActive(false)
- loveGiftItem.btnBox.box4:SetActive(false)
- if rewardData.hotVal >= loveVal then
- if logicData.box < i then
- loveGiftItem.btnBox.box2:SetActive(true)
- else
- if rewardState[i] then
- loveGiftItem.btnBox.box4:SetActive(true)
- else
- loveGiftItem.btnBox.box1:SetActive(true)
- end
- end
- else
- if logicData.box < i then
- loveGiftItem.btnBox.box2:SetActive(true)
- else
- local selfUid = ManagerContainer.DataMgr.UserData:GetUserId()
- if selfUid == uid then
- if rewardState[i] then
- loveGiftItem.btnBox.box4:SetActive(true)
- else
- loveGiftItem.btnBox.box1:SetActive(true)
- end
- else
- loveGiftItem.btnBox.box3:SetActive(true)
- end
- end
- end
- local data = {loveVal = loveVal,ticket = rewardData.hotVal,rewardState = rewardData.rewardState,boxId = i,boxNum = logicData.box,obj =loveGiftItem,uid = logicData.uid}
- wnd.uiBase:AddButtonUniqueEventListener(loveGiftItem.btnBox.button, wnd, wnd.OnClickBoxItem, data)
- end
- end
- for i = len2 + 1, len1 do
- if loveGiftItems[i] then
- loveGiftItems[i]:SetActive(false)
- end
- end
- end
- return UIIdolGiftItemCtr
|