MissionPre = {} local itemConfig = ConfigManager.GetConfig(ConfigName.ItemConfig) local parent function MissionPre:New(gameObject) local b = {} b.gameObject = gameObject b.transform = gameObject.transform setmetatable(b, { __index = MissionPre }) return b end local rechargeNum --初始化组件(用于子类重写) function MissionPre:InitComponent() self.spLoader = SpriteLoader.New() self.upLayout = Util.GetGameObject(self.gameObject, "bg/upLayout") self.middleLayout = Util.GetGameObject(self.gameObject, "bg/middleLayout") self.type1 = Util.GetGameObject(self.upLayout, "type1") self.type1Text1 = Util.GetGameObject(self.middleLayout, "text1"):GetComponent("Text") self.type1Text3 = Util.GetGameObject(self.middleLayout, "text3"):GetComponent("Text") self.btnGet = Util.GetGameObject(self.middleLayout, "btnGet") self.btnGetText = Util.GetGameObject(self.btnGet, "get"):GetComponent("Text") self.redPoint = Util.GetGameObject(self.btnGet, "redPoint") self.buyInfo = Util.GetGameObject(self.btnGet, "buyInfo"):GetComponent("Text") self.shadow=Util.GetGameObject(self.middleLayout,"shadow") self.scrollView = Util.GetGameObject(self.middleLayout, "scrollView") self.grid = Util.GetGameObject(self.scrollView, "grid") self.contents = Util.GetGameObject(self.middleLayout, "contents") self.itemName = Util.GetGameObject(self.middleLayout, "contents/name"):GetComponent("Text") self.content = Util.GetGameObject(self.middleLayout, "contents/condition"):GetComponent("Text") self.data = {} self.itemList = {} if not self.moneyNum then self.moneyNum = SubUIManager.Open(SubUIConfig.MoneyNumView, self.type1.transform, 0, MoneyNumViewType.Image_Horizontal, "ArtFont_1_cfont", 42, 1, Vector2.New(46, 46), Vector2.New(0, -25), MoneyNumViewImageType.Small_1) end self.moneyNum:SetOffsetPosition(Vector2.New(0, 0)) self.moneyNum.transform:SetSiblingIndex(2) end --绑定事件(用于子类重写) function MissionPre:BindEvent() Util.AddOnceClick(self.btnGet, function() if self.func then self.func(self.data,self.parent.curActiId,self.parent) else if self.data.taskType and self.data.taskType > 0 then if self.data.state == 1 then NetManager.TakeMissionRewardRequest(self.data.taskType,self.data.missionId, function(respond) UIManager.OpenPanel(UIName.RewardItemPopup, respond.drop, 1,function () self.parent:RefreshData(true,false,false) end) end) elseif self.data.state == 0 then if self.data.jump then JumpManager.GoJump(self.data.jump) end end else if self.data.state == 1 then NetManager.GetActivityRewardRequest(self.data.missionId, self.actData.activityId,function(drop) UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1) self.parent:RefreshData(true,false,false) end) elseif self.data.state == 0 then if self.data.jump then JumpManager.GoJump(self.data.jump) end end end end end) end --添加事件监听(用于子类重写) function MissionPre:AddListener() end --移除事件监听(用于子类重写) function MissionPre:RemoveListener() end function MissionPre:OnOpen() end --sdata,self,self.sortingOrder,self.ActData,self.actConfig function MissionPre:SetData(data,_parent,sortingOrder,actData,actConfig,func) self.data = data self.parent = _parent self.sortingOrder = sortingOrder self.actData = actData self.actConfig = actConfig self.func = func if self.data.title and self.data.title ~= "" then self.upLayout.gameObject:SetActive(false) else self.upLayout.gameObject:SetActive(false) end if (not self.data.itemName or self.data.itemName == "") and (not self.data.content or self.data.content == "") then self.contents:SetActive(false) else self.contents:SetActive(true) end if self.data.itemName and self.data.itemName ~= "" then self.itemName.gameObject:SetActive(true) self.itemName.text = self.data.itemName else self.itemName.gameObject:SetActive(false) end if self.data.content and self.data.content ~= "" then self.content.gameObject:SetActive(true) self.content.text = self.data.content else self.content.gameObject:SetActive(false) end if self.data.buyInfo and self.data.buyInfo ~= "" then self.buyInfo.text = self.data.buyInfo self.buyInfo.gameObject:SetActive(true) else self.buyInfo.gameObject:SetActive(false) end if not self.itemList then self.itemList = {} end for i = 1, #self.itemList do self.itemList[i].gameObject:SetActive(false) end for i = 1, #self.data.shows do if not self.itemList[i] then self.itemList[i] = SubUIManager.Open(SubUIConfig.ItemView,self.grid.transform) self.itemList[i].gameObject:SetActive(false) end self.itemList[i]:OnOpen(false, {self.data.shows[i][1],self.data.shows[i][2]}, 0.9,false,false,false,sortingOrder) self.itemList[i].gameObject:SetActive(true) end if self.func then self:SetIcon(self.data) else self:SetIcon1(self.data) end self:SetContent1() end function MissionPre:SetContent1() -- self.scrollView.transform.localPosition = Vector3.New(-370,7,0) self.upLayout.gameObject:SetActive(false) if self.actConfig then if self.actConfig.ActiveType == ActivityTypeDef.DynamicAct_recharge or self.actConfig.ActiveType == ActivityTypeDef.AccumulativeRechargeExper then -- self.scrollView.transform.localPosition = Vector3.New(-370,-9,0) self.upLayout.gameObject:SetActive(false) self:SetType1("累计充值",self.data.value,Language[10477].."("..(self.data.progress > self.data.value and self.data.value or self.data.progress) .."/"..self.data.value..")") elseif self.actConfig.ActiveType == ActivityTypeDef.yaojingleichong or self.actConfig.ActiveType == ActivityTypeDef.xianjingleichong then self.upLayout.gameObject:SetActive(false) self.type1.gameObject:SetActive(true) self.moneyNum.gameObject:SetActive(false) local curNumText = "("..(self.data.progress > self.data.value and self.data.value or self.data.progress) .."/"..self.data.value..")" local chongzhiName=self.actConfig.ActiveType == ActivityTypeDef.yaojingleichong and "妖晶" or "仙晶" --self.type1Text1.text = string.format("%s%d%s%s%s",Language[11377],self.data.value,chongzhiName,"") self.type1Text1.text = Language[11377]..""..self.data.value..""..chongzhiName self.type1Text3.text = Language[12323]..curNumText end end end function MissionPre:SetType1(type1Text1,num,type1Text3) self.type1.gameObject:SetActive(true) --CreatNumberPrefab(tostring(num),self.numList) self.moneyNum:SetNum(num) self.type1Text1.text = Language[11377] self.type1Text3.text = type1Text3 end local type={ [0]={sprite = "Btn_hz_cheng_01",text = Language[10019]}, [1]={sprite = "Btn_hz_lan_01",text = Language[10018]}, [2]={sprite = "s_slbz_1anniuhuise",text = Language[10101]}, } function MissionPre:SetIcon1(_itemdata) Util.SetGray(self.btnGet,_itemdata.state == 2) self.btnGet:GetComponent("Image").sprite = self.spLoader:LoadSprite(type[_itemdata.state].sprite) self.redPoint.gameObject:SetActive(false) self.redPoint.gameObject:SetActive(_itemdata.state == 1) Util.SetGray(self.redPoint,false) self.btnGet:GetComponent("Button").enabled = _itemdata.state ~= 2 self.btnGetText.text = type[_itemdata.state].text if _itemdata.state ~= 0 then if _itemdata.state == 2 then self.buyInfo.text = "" end return end if _itemdata.type and _itemdata.type > 0 then self.buyInfo.gameObject:SetActive(true) self:SetTimer(_itemdata.type) end end function MissionPre:SetTimer(typeIndex) if self.time then self.time:Stop() self.time = nil end self.five_timeDown = CalculateSecondsNowTo_N_OClock(0) self.week_timeDown = self.actData.endTime - GetTimeStamp() local func = function() self.five_timeDown = self.five_timeDown - 1 self.week_timeDown = self.week_timeDown - 1 if typeIndex == 1 then if self.five_timeDown <= 0 then self.buyInfo.gameObject:SetActive(false) if self.time then self.time:Stop() self.time = nil end return else if self.five_timeDown > 3600 then self.buyInfo.text = Language[10469]..TimeToH(self.five_timeDown) else self.buyInfo.text = Language[10469]..TimeToMS(self.five_timeDown) end end elseif typeIndex == 2 then if self.week_timeDown <= 0 then self.buyInfo.gameObject:SetActive(false) if self.time then self.time:Stop() self.time = nil end return else if self.week_timeDown > 3600 then self.buyInfo.text = Language[10469]..TimeToDH(self.week_timeDown) else self.buyInfo.text = Language[10469]..TimeToMS(self.week_timeDown) end end end end self.time = Timer.New(func, 1, -1, true) func() self.time:Start() end function MissionPre:SetIcon(_itemdata) --0 未领取(等级已达到,未购买基金) 1 已领取 -1 未达到等级 2可领取 Util.SetGray(self.btnGet,false) self.btnGet:GetComponent("Image").sprite = self.spLoader:LoadSprite("s_slbz_1anniuongse") self.redPoint.gameObject:SetActive(false) self.btnGet:GetComponent("Button").enabled = true if self.data.state == -1 then Util.SetGray(self.btnGet,true) self.btnGetText.text = Language[10018] elseif self.data.state == 2 then self.redPoint.gameObject:SetActive(true) Util.SetGray(self.redPoint,false) self.btnGetText.text = Language[10018] elseif self.data.state == 1 then self.redPoint.gameObject:SetActive(false) self.btnGetText.text = Language[10101] self.btnGet:GetComponent("Button").enabled = false Util.SetGray(self.btnGet,true) elseif self.data.state == 0 then self.redPoint.gameObject:SetActive(true) Util.SetGray(self.redPoint,false) self.btnGetText.text = Language[10018] end end function MissionPre:OnClose() for k,v in pairs(self.itemList) do SubUIManager.Close(v) end self.itemList = {} if self.time then self.time:Stop() self.time = nil end if self.moneyNum then SubUIManager.Close(self.moneyNum) self.moneyNum = nil end end return MissionPre