297 lines
11 KiB
Lua
297 lines
11 KiB
Lua
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].."<color=ffffe7>"..self.data.value.."</color>"..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
|
|
|