miduo_client/Assets/ManagedResources/~Lua/Modules/Operating/MissionPre.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