local LingLongBaoJingPanel = {} local data = {} ---转盘旋转类型 local TableTurnType={ Normal=1,--默认旋转 Expedite=2,--加快旋转 } local curTurnPos=1 --当前位置 local sortingOrder = 0 function LingLongBaoJingPanel:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = LingLongBaoJingPanel }) return b end local a,b,c,d local configs local isClose = false local drop = nil local skip = 0 local actconfigs local itemWidth,interval = 0,0 local position = { [1] = 44.2, [2] = 126.2, [3] = 209, [4] = 300, [5] = 391, [6] = 480, [7] = 565.6, [8] = 654.25, } ---初始化组件(用于子类重写) function LingLongBaoJingPanel:InitComponent(gameObject) self.spLoader = SpriteLoader.New() self.luckyTurnPanel = Util.GetGameObject(self.gameObject,"Panel") self.mask = Util.GetGameObject(self.luckyTurnPanel,"TurnTable/Mask") self.time = Util.GetGameObject(self.luckyTurnPanel,"time"):GetComponent("Text") self.firstLayer = Util.GetGameObject(self.luckyTurnPanel,"firstLayer"):GetComponent("Canvas") self.secondLayer = Util.GetGameObject(self.luckyTurnPanel,"turnpanelWai"):GetComponent("Canvas") self.thirtyLayer = Util.GetGameObject(self.luckyTurnPanel,"TurnTable"):GetComponent("Canvas") self.forthLayer = Util.GetGameObject(self.luckyTurnPanel,"forthLayer"):GetComponent("Canvas") self.fx_linglongbaojing_changzhu = Util.GetGameObject(self.firstLayer.transform,"fx_linglongbaojing_changzhu") self.fx_linglongbaojing_changzhu.gameObject:SetActive(true) self.fx_linglongbaojing_long = Util.GetGameObject(self.forthLayer.transform,"fx_linglongbaojing_long") self.fx_linglongbaojing_long.gameObject:SetActive(false) self.fx_linglongbaojing_chuxian = Util.GetGameObject(self.forthLayer.transform,"fx_linglongbaojing_chuxian") self.fx_linglongbaojing_chuxian.gameObject:SetActive(false) self.fx_linglongbaojing_longchuxian = Util.GetGameObject(self.forthLayer.transform,"fx_linglongbaojing_longchuxian") self.fx_linglongbaojing_longchuxian.gameObject:SetActive(false) ---跑马灯位置(物品位置) self.itemList = {} for i = 1,2 do if not self.itemList[i] then self.itemList[i] = {} end self.itemList[i].go = Util.GetGameObject(self.luckyTurnPanel, "ItemList"..i) for j = 1,self.itemList[i].go.transform.childCount do if not self.itemList[i][j] then self.itemList[i][j] = {} end self.itemList[i][j].pos = Util.GetGameObject(self.itemList[i].go, "item"..j) self.itemList[i][j].item = Util.GetGameObject(self.itemList[i][j].pos, "pre") local effect = nil effect = Util.GetGameObject(self.itemList[i][j].item, "fx_linglongbaojing_waiquanchufacangzhu") if not effect then effect = Util.GetGameObject(self.itemList[i][j].item, "fx_linglongbaojing_chouzhonglongtou") end self.itemList[i][j].effect = effect if self.itemList[i][j].effect then self.itemList[i][j].effect.gameObject:SetActive(false) end self.itemList[i][j].mask = Util.GetGameObject(self.itemList[i][j].item, "mask") self.itemList[i][j].itemPos = Util.GetGameObject(self.itemList[i][j].item, "itemPos") self.itemList[i][j].get = Util.GetGameObject(self.itemList[i][j].item, "get") self.itemList[i][j].selectKuang = Util.GetGameObject(self.itemList[i][j].item, "selectKuang") self.itemList[i][j].selectKuang.gameObject:SetActive(false) self.itemList[i][j].itemView = Util.GetGameObject(self.itemList[i][j].itemPos, "icon"):GetComponent("Image")--道具 self.itemList[i][j].numDi = Util.GetGameObject(self.itemList[i][j].item, "numDi") self.itemList[i][j].num = Util.GetGameObject(self.itemList[i][j].item, "Text"):GetComponent("Text") end end --拥有道具数量 self.propBtn = Util.GetGameObject(self.thirtyLayer.transform,"Prop") self.propImage = Util.GetGameObject(self.propBtn, "PropImage"):GetComponent("Image")--道具 self.propText =Util.GetGameObject(self.propBtn, "PropText"):GetComponent("Text") self.fx_linglongbaojing_kaiqi = Util.GetGameObject(self.propBtn,"fx_linglongbaojing_kaiqi") self.fx_linglongbaojing_kaiqi.gameObject:SetActive(false) -- 奖励预览 self.btnPreview = Util.GetGameObject(self.gameObject, "button/previewBtn") self.shopBtn = Util.GetGameObject(self.gameObject, "button/shopBtn") self.shopRed = Util.GetGameObject(self.gameObject, "button/shopBtn/red") self.helpBtn = Util.GetGameObject(self.luckyTurnPanel,"button/helpBtn") self.helpPosition = Util.GetGameObject(self.luckyTurnPanel,"BG/helpPos"):GetComponent("RectTransform").localPosition self.slider = Util.GetGameObject(self.luckyTurnPanel,"Slider") self.luckyValueNum = Util.GetGameObject(self.slider, "LuckyValue/LuckyValueNum"):GetComponent("Text")--幸运值 self.luckySlider = Util.GetGameObject(self.slider, "LuckySlider"):GetComponent("Slider") self.rewardBoxList={}--奖励盒 self.rewardBox=Util.GetGameObject(self.slider,"RewardBox") self.itemRewardList = {} local bg1 = Util.GetGameObject(self.slider, "BG") for i=1,8 do if not self.itemRewardList[i] then self.itemRewardList[i] = SubUIManager.Open(SubUIConfig.ItemView,bg1.transform) end self.itemRewardList[i].gameObject:SetActive(false) if not self.rewardBoxList[i] then self.rewardBoxList[i] = {} end self.rewardBoxList[i].go=Util.GetGameObject(self.rewardBox,"Item"..i) self.rewardBoxList[i].yiLingQu=Util.GetGameObject(self.rewardBoxList[i].go,"yiLingQu") self.rewardBoxList[i].icon =Util.GetGameObject(self.rewardBoxList[i].go,"BG"):GetComponent("Image")--幸运值 self.rewardBoxList[i].value =Util.GetGameObject(self.rewardBoxList[i].go,"Value"):GetComponent("Text")--幸运值 self.rewardBoxList[i].redPoint=Util.GetGameObject(self.rewardBoxList[i].go,"redPoint") self.rewardBoxList[i].Num=Util.GetGameObject(self.rewardBoxList[i].go,"Num/Text"):GetComponent("Text")--幸运值 end local itemWidth = self.rewardBoxList[1].go:GetComponent("RectTransform").sizeDelta.x self.skip = Util.GetGameObject(self.gameObject,"button/skip") self.check = Util.GetGameObject(self.skip,"Go") self.checkText = Util.GetGameObject(self.skip,"Text"):GetComponent("Text")--幸运值 if not PlayerPrefs.HasKey("Linglongbaojing_SkipAnim"..PlayerManager.uid) then PlayerPrefs.SetInt("Linglongbaojing_SkipAnim"..PlayerManager.uid,0) end skip = PlayerPrefs.GetInt("Linglongbaojing_SkipAnim"..PlayerManager.uid) self.check.gameObject:SetActive(skip ~= 0) local config = ConfigManager.GetConfigData(ConfigName.SpecialConfig,117) local strs = string.split(config.Value,"|") self.costId = tonumber(strs[1]) strs = string.split(strs[2],"#") a = tonumber(strs[1]) b = tonumber(strs[2]) c = tonumber(strs[3]) d = tonumber(strs[4]) end ---绑定事件(用于子类重写) function LingLongBaoJingPanel:BindEvent() --帮助按钮 Util.AddClick(self.helpBtn,function() --Log("==YSP==点击帮助按钮") UIManager.OpenPanel(UIName.HelpPopup,self.actConfig.HelpId,self.helpPosition.x,self.helpPosition.y) end) Util.AddClick(self.btnPreview, function() UIManager.OpenPanel(UIName.RewardPreviewPopup,PRE_REWARD_POOL_TYPE.LINGLONG) end) Util.AddClick(self.shopBtn, function() JumpManager.GoJump(40036) PlayerPrefs.SetInt(PlayerManager.uid.."lingShouBaoGe",1) end) Util.AddClick(self.skip, function() skip = skip == 0 and 1 or 0 PlayerPrefs.SetInt("Linglongbaojing_SkipAnim"..PlayerManager.uid,skip) self.check.gameObject:SetActive(skip ~= 0) self:SetPropShow() end) Util.AddClick(self.propBtn, function() if not self.enough then PopupTipPanel.ShowTip("道具不足") return end local count = BagManager.GetItemCountById(self.costId) local TenCount = (a * 10^3 + b * 10^2 + c * 10 ^1 + d * 10^0) local num = 1 if count >= TenCount and skip == 1 then num = 10 end LingLongBaoJingManager.QiMenDunJiaDrawRequest(self.actId,num,function(idList,_drop) if not idList[1] then PopupTipPanel.ShowTip("转盘奖励出错了") return end drop = _drop local isGetBigReward = false CheckRedPointStatus(RedPointType.linglongBaojing) self:DelayMaskWithBool(true) self.fx_linglongbaojing_kaiqi.gameObject:SetActive(true) SoundManager.PlaySound(SoundConfig.Audio_linglongbaojing_kaiqi_002) for i = 1,#idList do local config = ConfigManager.GetConfigData(ConfigName.LingLongPool,idList[i]) if config.Position == 1 then isGetBigReward = true end end local x = function() local tempData = {} for i = 1,#idList do table.insert(tempData,data[idList[i]]) end if drop then UIManager.OpenPanel(UIName.RewardItemPopup,drop,1,function() drop = nil NetManager.QiMenDunJiaHitListRequest(self.actId,function(msg) LingLongBaoJingManager.SetDataListState(nil,1) LingLongBaoJingManager.SetDataListState(nil,2) LingLongBaoJingManager.SetDataListState(msg.hitList) self:RefreshTreasureTypeState(1) self:RefreshTreasureTypeState(2) end) if isGetBigReward then if not isClose then self.itemList[1][data[idList[2]].address].selectKuang.gameObject:SetActive(false) self.itemList[2][data[idList[1]].address].selectKuang.gameObject:SetActive(false) end else if not isClose then self.itemList[2][data[idList[1]].address].selectKuang.gameObject:SetActive(false) end end self:SetPropShow() self.fx_linglongbaojing_kaiqi.gameObject:SetActive(false) if not isClose then self.itemList[2][1].effect.gameObject:SetActive(false) end self.fx_linglongbaojing_longchuxian.gameObject:SetActive(false) for i = 1,#self.itemList[1] do if not isClose then self.itemList[1][i].effect.gameObject:SetActive(false) end end self:DelayMaskWithBool(false) end) end end curTurnPos = 1 if skip == 1 then x() return end self:SetTableTurnEffect(TableTurnType.Expedite,2,data[idList[1]].address,function() if isGetBigReward then --PopupTipPanel.ShowTip("播放一些开门的特效") SoundManager.PlaySound(SoundConfig.Audio_linglongbaojing_longmengezi_004) self.Btncoroutine = coroutine.start(function() local isStartWai = false while(not isClose and not isStartWai) do self.itemList[2][1].effect.gameObject:SetActive(true) SoundManager.PlaySound(SoundConfig.Audio_linglongbaojing_longsaoguang_006) coroutine.wait(1) self.fx_linglongbaojing_longchuxian.gameObject:SetActive(true) SoundManager.PlaySound(SoundConfig.Audio_linglongbaojing_longpanxuan_005) coroutine.wait(1) self:RefreshTreasureMaskByType(1,false) SoundManager.PlaySound(SoundConfig.Audio_linglongbaojing_waiquandianliang_008) for i = 1,#self.itemList[1] do self.itemList[1][i].effect.gameObject:SetActive(true) end --coroutine.wait(0.5) isStartWai = true end while(not isClose and isStartWai) do isStartWai = false curTurnPos = 1 self:SetTableTurnEffect(TableTurnType.Expedite,1,data[idList[2]].address,function() self:RefreshTreasureMaskByType(1,true) x() end) end end) else x() end end) end) end) end ---添加事件监听(用于子类重写) function LingLongBaoJingPanel:AddListener() Game.GlobalEvent:AddEvent(GameEvent.Activity.OnActivityProgressStateChange,self.RefreshProgress1,self) end ---移除事件监听(用于子类重写) function LingLongBaoJingPanel:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.Activity.OnActivityProgressStateChange,self.RefreshProgress1,self) end --界面打开时调用(用于子类重写) function LingLongBaoJingPanel:OnOpen(_activityConfig,_index,parent) self.actConfig = _activityConfig self.pageIndex = _index self.parent = parent end function LingLongBaoJingPanel:OnSortingOrderChange(_sortingOrder) self.sortingOrder = _sortingOrder self:SetLayer() end -- 打开,重新打开时回调 function LingLongBaoJingPanel:OnShow(_sortingOrder) isClose = false --self.parent.tabbox.gameObject:SetActive(false) self.gameObject:SetActive(true) self.sortingOrder = _sortingOrder self.actId = self.actConfig.ActId self.actType = self.actConfig.ActiveType > 0 and self.actConfig.ActiveType or self.actConfig.FunType if self.actConfig.IfBack == 1 then if self.actConfig.ActiveType > 0 then local id = ActivityGiftManager.IsActivityTypeOpen(self.actConfig.ActiveType) if id and id > 0 then self.actId = id local config = ConfigManager.TryGetConfigDataByThreeKey(ConfigName.ActivityGroups,"PageType",self.actConfig.PageType,"ActiveType",self.actConfig.ActiveType,"ActId",id) if config then self.actConfig = config end end end end self.turnEffect = Timer.New() self.shopRed:SetActive(PlayerPrefs.GetInt(PlayerManager.uid.."lingShouBaoGe")==0 or not OperatingManager.IsBuyGift(20017)) self:RefreshTreasureType() self:DelayMaskWithTime(0.5) self:SetPropShow() self:CreatBox() self:SetTime() self:SetLayer() self.fx_linglongbaojing_chuxian.gameObject:SetActive(true) SoundManager.PlaySound(SoundConfig.Audio_linglongbaojing_gaoguang_huaban_001) Timer.New(function() self.fx_linglongbaojing_long.gameObject:SetActive(true) SoundManager.PlaySound(SoundConfig.Audio_linglongbaojing_lianhuaxiazhui_003) end,0.5):Start() local act = ActivityGiftManager.IsActivityTypeOpen(ActivityTypeDef.linglongshangshi) self.shopBtn:SetActive(not not act) end function LingLongBaoJingPanel:SetLayer() self.firstLayer.overrideSorting = true self.firstLayer.sortingOrder = self.sortingOrder self.secondLayer.overrideSorting = true self.secondLayer.sortingOrder = self.sortingOrder + 1 self.thirtyLayer.overrideSorting = true self.thirtyLayer.sortingOrder = self.sortingOrder + 2 self.forthLayer.overrideSorting = true self.forthLayer.sortingOrder = self.sortingOrder + 3 Util.SetParticleSortLayer(self.fx_linglongbaojing_changzhu,self.sortingOrder) Util.SetParticleSortLayer(self.fx_linglongbaojing_long,self.sortingOrder + 3) Util.SetParticleSortLayer(self.fx_linglongbaojing_chuxian,self.sortingOrder + 3) Util.SetParticleSortLayer(self.fx_linglongbaojing_longchuxian,self.sortingOrder + 3) Util.SetParticleSortLayer(self.fx_linglongbaojing_kaiqi,self.sortingOrder + 2) for i = 1,#self.itemList do for j = 1,#self.itemList[i] do if self.itemList[i][j].effect then Util.SetParticleSortLayer(self.itemList[i][j].effect,self.sortingOrder + i) end end end end function LingLongBaoJingPanel:SetTime() if self.timer then self.timer:Stop() self.timer = nil end local time = ActivityGiftManager.GetTaskEndTime(ActivityTypeDef.lingLongBaoJing) local remainTime = time - GetTimeStamp() self.time.text = "活动倒计时:"..TimeToDHMS(remainTime) self.timer = Timer.New(function() remainTime = remainTime - 1 self.time.text = "活动倒计时:"..TimeToDHMS(remainTime) if remainTime <= 0 then self.time.text = "活动倒计时:"..TimeToDHMS(0) end end,1,-1,false) self.timer:Start() end --赋值 function LingLongBaoJingPanel:RefreshTreasureType() data = LingLongBaoJingManager.GetRewardList() for k,v in pairs(data) do local config = ConfigManager.GetConfigData(ConfigName.ItemConfig,v.reward[1]) if v.typeIndex == 2 and v.address == 1 then else self.itemList[v.typeIndex][v.address].itemView.sprite = self.spLoader:LoadSprite(GetSpriteNameByItemId(v.reward[1])) end if config.ItemType ~= ItemType.Hero and config.ItemType ~= ItemType.linglongbaojingkaimen then self.itemList[v.typeIndex][v.address].numDi.gameObject:SetActive(true) self.itemList[v.typeIndex][v.address].num.text = PrintWanNum(v.reward[2]) else self.itemList[v.typeIndex][v.address].numDi.gameObject:SetActive(false) end Util.AddOnceClick(self.itemList[v.typeIndex][v.address].itemPos.gameObject, function() if config.ItemType == ItemType.Hero then UIManager.OpenPanel(UIName.RoleGetInfoPopup, false, v.reward[1], 5) elseif config.ItemType == ItemType.linglongbaojingkaimen then else UIManager.OpenPanel(UIName.RewardItemSingleShowPopup,v.reward[1]) end end) self:RefreshTreasureTypeState(0,data) end self:RefreshTreasureMaskByType(1,true) self:RefreshTreasureMaskByType(2,false) end --刷新状态 function LingLongBaoJingPanel:RefreshTreasureTypeState(typeIndex,_data) --只重置_data local tempData = {} if typeIndex == 0 then tempData = _data --重置typeIndex对应的圈 else data = LingLongBaoJingManager.GetRewardList() tempData = data end for k,v in pairs(tempData) do if ((v.typeIndex == typeIndex) or typeIndex == 0) and not isClose then if v.state == 0 then self.itemList[v.typeIndex][v.address].get.gameObject:SetActive(false) else self.itemList[v.typeIndex][v.address].get.gameObject:SetActive(true) end end end end --外圈遮罩设置 function LingLongBaoJingPanel:RefreshTreasureMaskByType(typeIndex,value) for k,v in pairs(data) do if v.typeIndex == typeIndex and not isClose then self.itemList[v.typeIndex][v.address].mask.gameObject:SetActive(value) end end end ---界面关闭时调用(用于子类重写) function LingLongBaoJingPanel:OnClose() isClose = true if drop then UIManager.OpenPanel(UIName.RewardItemPopup,drop,1,function() drop = nil end) end --self.parent.tabbox.gameObject:SetActive(true) self.fx_linglongbaojing_long.gameObject:SetActive(false) self.fx_linglongbaojing_chuxian.gameObject:SetActive(false) self.gameObject:SetActive(false) if self.thread then coroutine.stop(self.thread) self.thread=nil end if self.Btncoroutine then coroutine.stop(self.Btncoroutine) self.Btncoroutine=nil end if self.turnEffect then self.turnEffect:Stop() self.turnEffect = nil end if self.timer then self.timer:Stop() self.timer = nil end end ---界面销毁时调用(用于子类重写) function LingLongBaoJingPanel:OnDestroy() self.itemList = {} self.spLoader:Destroy() end ---设置转盘滚动 1旋转类型 2探宝类型 3服务器给的探宝后位置 function LingLongBaoJingPanel:SetTableTurnEffect(turnType,treasureType,pos,func) if turnType==TableTurnType.Normal then --默认旋转 self:TurnEffectReset(0.5,treasureType) self.turnEffect:Start() elseif turnType==TableTurnType.Expedite then --抽奖旋转 至指定位置 self.thread = coroutine.start(function() coroutine.wait(1)--2 self:TurnEffectReset(0.05,treasureType) coroutine.wait(2)--2 self:TurnEffectReset(0.2,treasureType) coroutine.wait(0.8)--0.8 self:TurnEffectReset(0.4,treasureType,true,pos,function()--当效果播放完毕后 从管理器取得数据 local timer=Timer.New(function() if func then func() end end,0.5,1,true) timer:Start() end) end) end end ---转盘滚动特效重设 1移动速度,值越小越快 2是否停止 3停止位置 function LingLongBaoJingPanel:TurnEffectReset(turnSpeed,treasureType,isStop,pos,func) if not self.turnEffect then self.turnEffect = Timer.New() end self.turnEffect:Reset(function() if curTurnPos > #self.itemList[treasureType] then curTurnPos = 1 end if not isClose then if curTurnPos == 1 then self.itemList[treasureType][#self.itemList[treasureType]].selectKuang.gameObject:SetActive(false) else self.itemList[treasureType][curTurnPos - 1].selectKuang.gameObject:SetActive(false) end self.itemList[treasureType][curTurnPos].selectKuang.gameObject:SetActive(true) end if treasureType == 2 then SoundManager.PlaySound(SoundConfig.Audio_linglongbaojing_neiquanlunge_007) else SoundManager.PlaySound(SoundConfig.Audio_linglongbaojing_waiquanlunge_009) end if isStop then if pos == curTurnPos then--如果停到对应位置 self.turnEffect:Stop()--暂停跑马灯 if func then--回调 func() end end end curTurnPos = curTurnPos + 1 end,turnSpeed,-1,true) self.turnEffect:Start() end ---设置道具拥有显示 1道具id 2探宝类型 function LingLongBaoJingPanel:SetPropShow() self.propImage.sprite = self.spLoader:LoadSprite(GetSpriteNameByItemId(self.costId)) local count = BagManager.GetItemCountById(self.costId) local tenCount = (a * 10^3 + b * 10^2 + c * 10^1 + d * 10^0) local singleCount = (a * 1^3 + b * 1^2 + c * 1 ^1 + d * 1^0) local color if singleCount <= count then self.enough = true color = "283B41" else self.enough = false color = "FF0000" end local tempCount = singleCount if tenCount <= count then self.checkText.text = "十连跳过动画" if skip == 1 then tempCount = tenCount end else self.checkText.text = "跳过动画" end self.propText.text = string.format("×%s",color,tempCount) end function LingLongBaoJingPanel:CreatBox() self:RefreshLuckyValue() end ---刷新幸运值 function LingLongBaoJingPanel:RefreshLuckyValue() configs = ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityRewardConfig,"ActivityId",self.actId) --interval = self.rewardBox.transform.rect.width - (itemWidth * #configs) local list = {} for k,v in ipairs(configs) do table.insert(list,v.Values[1][1]) end table.sort(list,function(a,b) return a < b end) --local pos = self:CalutePos2(self.rewardBox,list) for i = 1,#self.rewardBoxList do local v3 = self.rewardBoxList[i].go:GetComponent("RectTransform").anchoredPosition3D v3.x = position[i] self.rewardBoxList[i].go:GetComponent("RectTransform").anchoredPosition3D = v3 self.rewardBoxList[i].value.text = configs[i].Values[1][1].."次" self.rewardBoxList[i].redPoint.gameObject:SetActive(false) if i < 8 then self.rewardBoxList[i].Num.text = configs[i].Reward[1][2] self.rewardBoxList[i].icon.sprite = self.spLoader:LoadSprite(GetSpriteNameByItemId(configs[i].Reward[1][1])) end self.itemRewardList[i]:OnOpen(false, {configs[i].Reward[1][1],configs[i].Reward[1][2]},1, false, false, false, sortingOrder) Util.AddOnceClick(self.rewardBoxList[i].icon.gameObject,function() local mission = ActivityGiftManager.GetActivityInfo(self.actId,configs[i].Id) if mission.progress >= configs[i].Values[1][1] and mission.state == 0 then NetManager.GetActivityRewardRequest(configs[i].Id,self.actId,function(drop) UIManager.OpenPanel(UIName.RewardItemPopup,drop) self:RefreshProgress(i) end) else self.itemRewardList[i]:OnBtnCkickEvent(configs[i].Reward[1][1]) end end) end self.luckySlider.minValue = 0 self.luckySlider.maxValue = 1 self:RefreshProgress() end -- function LingLongBaoJingPanel:CalutePos1(parent,list) -- local pos = {} -- local wi = self.rewardBox.transform.rect.width -- for i = 1,#list do -- local pos1 = wi * (list[i]/list[#list]) -- table.insert(pos,pos1) -- end -- return pos -- end -- function LingLongBaoJingPanel:CalutePos2(parent,list) -- local pos = {} -- local tmp = 0 -- local count = list[#list] -- local tempinterval = 0 -- local position = 0 -- local wi = self.rewardBox.transform.rect.width -- for i = 1,#list do -- tempinterval = (list[i] - tmp) / count * interval -- if i == 1 then -- position = tempinterval -- else -- position = tempinterval + itemWidth + position -- end -- table.insert(pos,position) -- end -- return pos -- end function LingLongBaoJingPanel.RefreshProgress1(self) self:RefreshProgress() end function LingLongBaoJingPanel:RefreshProgress(index) CheckRedPointStatus(RedPointType.linglongBaojing) actconfigs = ActivityGiftManager.GetActivityInfoByType(self.actId) LogGreen("actconfigs.mission[1].progress:"..actconfigs.mission[1].progress) self.luckySlider.value = self:CalculateInterval(actconfigs.mission[1].progress) self.luckyValueNum.text = actconfigs.mission[1].progress.."/"..configs[#configs].Values[1][1] if index and index > 0 then self.rewardBoxList[index].redPoint.gameObject:SetActive(false) self.rewardBoxList[index].yiLingQu.gameObject:SetActive(true) else for i = 1,#self.rewardBoxList do local mission = ActivityGiftManager.GetActivityInfo(self.actId,configs[i].Id) if mission.progress >= configs[i].Values[1][1] and mission.state == 0 then self.rewardBoxList[i].redPoint.gameObject:SetActive(true) else self.rewardBoxList[i].redPoint.gameObject:SetActive(false) if mission.progress >= configs[i].Values[1][1] and mission.state == 1 then self.rewardBoxList[i].yiLingQu.gameObject:SetActive(true) end end end end end function LingLongBaoJingPanel:CalculateInterval(count) if not configs or #configs < 1 then configs = ConfigManager.GetAllConfigsDataByKey(ConfigName.ActivityRewardConfig,"ActivityId",self.actId) end local interval = 0 if count >= configs[8].Values[1][1] then interval = 1 elseif count >= configs[7].Values[1][1] then interval = position[7]/position[#position] + ((count - configs[7].Values[1][1]) * (position[8] - position[7]) / (configs[8].Values[1][1] - configs[7].Values[1][1]))/position[#position] elseif count >= configs[6].Values[1][1] then interval = position[6]/position[#position] + ((count - configs[6].Values[1][1]) * (position[7] - position[6]) / (configs[7].Values[1][1] - configs[6].Values[1][1]))/position[#position] elseif count >= configs[5].Values[1][1] then interval = position[5]/position[#position] + ((count - configs[5].Values[1][1]) * (position[6] - position[5]) / (configs[6].Values[1][1] - configs[5].Values[1][1]))/position[#position] elseif count >= configs[4].Values[1][1] then interval = position[4]/position[#position] + ((count - configs[4].Values[1][1]) * (position[5] - position[4]) / (configs[5].Values[1][1] - configs[4].Values[1][1]))/position[#position] elseif count >= configs[3].Values[1][1] then interval = position[3]/position[#position] + ((count - configs[3].Values[1][1]) * (position[4] - position[3]) / (configs[4].Values[1][1] - configs[3].Values[1][1]))/position[#position] elseif count >= configs[2].Values[1][1] then interval = position[2]/position[#position] + ((count - configs[2].Values[1][1]) * (position[3] - position[2]) / (configs[3].Values[1][1] - configs[2].Values[1][1]))/position[#position] elseif count >= configs[1].Values[1][1] then interval = position[1]/position[#position] + ((count - configs[1].Values[1][1]) * (position[2] - position[1]) / (configs[2].Values[1][1] - configs[1].Values[1][1]))/position[#position] else interval = 0 + ((count ) * (position[1] - 0) / (configs[1].Values[1][1] - 0))/position[#position] end return interval end ---延时遮罩 1按时间 function LingLongBaoJingPanel:DelayMaskWithTime(delayTime) self.mask.gameObject:SetActive(true) self.parent.mask.gameObject:SetActive(true) local closeMask=Timer.New(function() self.mask.gameObject:SetActive(false) self.parent.mask.gameObject:SetActive(false) end,delayTime,1,true) closeMask:Start() end ---延时遮罩 1按bool function LingLongBaoJingPanel:DelayMaskWithBool(b) self.mask.gameObject:SetActive(b) self.parent.mask.gameObject:SetActive(b) end return LingLongBaoJingPanel