local RewardPreview= quick_class("RewardPreview") local lotterySetting=ConfigManager.GetConfig(ConfigName.LotterySetting) local data={} local listPre={} local curtimes=0 function RewardPreview:ctor(gameObject) self.gameObject = gameObject self:InitComponent(gameObject) self:BindEvent() self:OnShow() end function RewardPreview:InitComponent(gameObject) self.closeBtn=Util.GetGameObject(self.gameObject,"close") self.itemGrid=Util.GetGameObject(self.gameObject,"itemGrid") self.itemPre=Util.GetGameObject(self.gameObject,"itemprefab") self.curtimes=Util.GetGameObject(self.gameObject,"tip1"):GetComponent("Text") self.slider=Util.GetGameObject(self.gameObject,"Slider"):GetComponent("Slider") end function RewardPreview:BindEvent() Util.AddClick(self.closeBtn.gameObject,function() self:OnHide() end) end function RewardPreview:OnShow() self.gameObject:SetActive(true) local maxtimesId=lotterySetting[RecruitType.TimeLimitSingle].MaxTimes; curtimes=PrivilegeManager.GetPrivilegeUsedTimes(maxtimesId) self: RefreshRewarid() self.curtimes.text=Language[12181]..curtimes end function RewardPreview:RefreshRewarid() local curActivityId=ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.FindFairy) data= ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityRewardConfig,"ActivityId",curActivityId) local tmp=0 local count=0 for n,m in ipairs(data) do if n~=1 then count = count + m.Values[1][1]-tmp end tmp = m.Values[1][1] self.slider.value = curtimes / m.Values[1][1] end tmp=0 local position = 0 local width = self.itemPre.transform:GetComponent("RectTransform").sizeDelta.x local interval = self.itemGrid.transform:GetComponent("RectTransform").sizeDelta.x - (width * #data) if(not listPre) then listPre={} end for n,m in ipairs(data) do if m then if not listPre[n] then listPre[n]=newObjToParent(self.itemPre,self.itemGrid) listPre[n].gameObject:SetActive(true) end local o= SubUIManager.Open(SubUIConfig.ItemView,listPre[n].transform) o:OnOpen(false, {m.Reward[1][1], m.Reward[1][2]}, 1.1, true) o.gameObject:SetActive(true) Util.GetGameObject(listPre[n].gameObject,"progress"):GetComponent("Text") .text=m.Values[1][1] if n==1 then listPre[n].transform:GetComponent("RectTransform").anchoredPosition3D = Vector3.zero position = 0 else local tempinterval = (m.Values[1][1] - tmp) / count * interval position = tempinterval + width + position listPre[n].transform:GetComponent("RectTransform").anchoredPosition3D=Vector3.New(position,0,0) end tmp=m.Values[1][1] end end end function RewardPreview:OnHide() self.gameObject:SetActive(false) data={} end function RewardPreview:OnDestroy() listPre=nil data=nil end return RewardPreview