311 lines
13 KiB
Lua
311 lines
13 KiB
Lua
require("Base/BasePanel")
|
|
OpenSeverWelfarePanel = Inherit(BasePanel)
|
|
local this = OpenSeverWelfarePanel
|
|
local activityRewardConfig = ConfigManager.GetConfig(ConfigName.ActivityRewardConfig)
|
|
local sortingOrder = 0
|
|
local isPlayAnim = true
|
|
local firstData = nil
|
|
local isShowNeedGetUpTextId = 0
|
|
local activityData = {}
|
|
--初始化组件(用于子类重写)
|
|
function OpenSeverWelfarePanel:InitComponent()
|
|
this.spLoader = SpriteLoader.New()
|
|
this.closeBtn = Util.GetGameObject(self.transform, "bg/closeBtn")
|
|
this.titleText = Util.GetGameObject(self.transform, "bg/titleText"):GetComponent("Text")
|
|
this.timeText = Util.GetGameObject(self.transform, "timeText"):GetComponent("Text")
|
|
this.timeTextGo = Util.GetGameObject(self.transform, "timeText")
|
|
this.rewardPre = Util.GetGameObject(self.gameObject, "rewardPre")
|
|
local v = Util.GetGameObject(self.gameObject, "rect"):GetComponent("RectTransform").rect
|
|
this.ScrollView = SubUIManager.Open(SubUIConfig.ScrollCycleView,
|
|
Util.GetGameObject(self.gameObject, "rect").transform,
|
|
this.rewardPre, nil, Vector2.New(v.width, v.height), 1, 1, Vector2.New(0, -5))
|
|
this.ScrollView.moveTween.MomentumAmount = 1
|
|
this.ScrollView.moveTween.Strength = 1
|
|
this.NoviceItemList = {} --存储itemview 重复利用
|
|
this.getBtn = Util.GetGameObject(self.transform, "title/lingquButton")
|
|
this.getTxt = Util.GetGameObject(self.transform, "title/lingquButton/Text"):GetComponent("Text")
|
|
this.goBtn = Util.GetGameObject(self.transform, "title/qianwangButton")
|
|
this.title = Util.GetGameObject(self.transform, "title")
|
|
this.FirstTip = Util.GetGameObject(self.transform, "title/Text"):GetComponent("Text")
|
|
this.content = Util.GetGameObject(self.transform, "title/content")
|
|
end
|
|
|
|
--绑定事件(用于子类重写)
|
|
function OpenSeverWelfarePanel:BindEvent()
|
|
Util.AddClick(this.closeBtn, function()
|
|
PlaySoundWithoutClick(SoundConfig.Sound_UICancel)
|
|
self:ClosePanel()
|
|
end)
|
|
|
|
Util.AddClick(this.getBtn, function()
|
|
if firstData.state == 1 then
|
|
NetManager.GetActivityRewardRequest(firstData.missionId, activityData.activityId, function(drop)
|
|
--ActivityGiftManager.GetActivityRewardRequest(ActivityTypeDef.OpenSeverWelfare,rewardData.missionId, function(msg)
|
|
UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1, function()
|
|
this.OnShowPanelData(false, false)
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Mission.GetOpenServerRewardRefreshFightPoint)
|
|
end)
|
|
end)
|
|
end
|
|
end)
|
|
end
|
|
|
|
--添加事件监听(用于子类重写)
|
|
function OpenSeverWelfarePanel:AddListener()
|
|
end
|
|
|
|
--移除事件监听(用于子类重写)
|
|
function OpenSeverWelfarePanel:RemoveListener()
|
|
end
|
|
|
|
--界面打开时调用(用于子类重写)
|
|
function OpenSeverWelfarePanel:OnOpen(...)
|
|
|
|
end
|
|
|
|
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
|
|
function OpenSeverWelfarePanel:OnShow()
|
|
isPlayAnim = true
|
|
this.OnShowPanelData(true, true)
|
|
end
|
|
|
|
function OpenSeverWelfarePanel:OnSortingOrderChange()
|
|
for i, v in pairs(this.NoviceItemList) do
|
|
for j = 1, #this.NoviceItemList[i] do
|
|
if this.NoviceItemList[i][j] and this.NoviceItemList[i][j].gameObject then
|
|
this.NoviceItemList[i][j]:SetEffectLayer(self.sortingOrder)
|
|
end
|
|
end
|
|
end
|
|
sortingOrder = self.sortingOrder
|
|
end
|
|
|
|
function this.OnShowPanelData(isTop, isAni)
|
|
this.titleText.text = Language[10023]
|
|
activityData = ActivityGiftManager.GetActivityTypeInfo(ActivityTypeDef.SongWuXianChou)
|
|
isShowNeedGetUpTextId = 0
|
|
if activityData then
|
|
this.RemainTimeDown(this.timeTextGo, this.timeText, activityData.endTime - GetTimeStamp())
|
|
|
|
local missions = {}
|
|
local first = {}
|
|
for i = 1, #activityData.mission do
|
|
local missionId = activityData.mission[i].missionId
|
|
if activityRewardConfig[missionId] and activityRewardConfig[missionId].Values and activityRewardConfig[missionId].Values[1][1] == 1 then
|
|
first = activityData.mission[i]
|
|
this.FirstTip.text = GetLanguageStrById(activityRewardConfig[missionId].ContentsShow)
|
|
else
|
|
table.insert(missions, activityData.mission[i])
|
|
end
|
|
end
|
|
ActivityGiftManager.OpenSeverWelfareRewardTabsSort(missions)
|
|
this.ScrollView:SetData(missions, function(index, go)
|
|
this.SingleDataShow(go, missions[index])
|
|
end, not isTop, not isAni)
|
|
--顶部每日奖励
|
|
if first then
|
|
local sConFigData = activityRewardConfig[first.missionId]
|
|
if this.NoviceItemList[this.title] then
|
|
for i = 1, 4 do
|
|
this.NoviceItemList[this.title][i].gameObject:SetActive(false)
|
|
end
|
|
for i = 1, #sConFigData.Reward do
|
|
if this.NoviceItemList[this.title][i] then
|
|
this.NoviceItemList[this.title][i]:OnOpen(false,
|
|
{ sConFigData.Reward[i][1], sConFigData.Reward[i][2] }, 0.9, false, false, false,
|
|
sortingOrder)
|
|
this.NoviceItemList[this.title][i].gameObject:SetActive(true)
|
|
end
|
|
end
|
|
else
|
|
this.NoviceItemList[this.title] = {}
|
|
for i = 1, 4 do
|
|
this.NoviceItemList[this.title][i] = SubUIManager.Open(SubUIConfig.ItemView, this.content.transform)
|
|
this.NoviceItemList[this.title][i].gameObject:SetActive(false)
|
|
end
|
|
for i = 1, #sConFigData.Reward do
|
|
this.NoviceItemList[this.title][i]:OnOpen(false, { sConFigData.Reward[i][1], sConFigData.Reward[i]
|
|
[2] }, 0.9, false, false, false, sortingOrder)
|
|
this.NoviceItemList[this.title][i].gameObject:SetActive(true)
|
|
end
|
|
end
|
|
local state = first.state
|
|
firstData = first
|
|
local value = sConFigData.Values[2][1]
|
|
--local isPass = FightPointPassManager.IsFightPointPass2(value)
|
|
-- if state==0 and isPass then
|
|
-- this.getBtn:SetActive(true)
|
|
-- else
|
|
-- this.getBtn:SetActive(state>0)
|
|
-- end
|
|
this.getBtn:SetActive(state > 0)
|
|
this.goBtn:SetActive(state == 0 and not isPass)
|
|
if state == 1 then
|
|
this.getTxt.text = Language[10024]
|
|
Util.SetGray(this.getBtn, false)
|
|
this.getBtn:GetComponent("Button").interactable = true
|
|
elseif state == 2 then
|
|
this.getTxt.text = Language[10025]
|
|
Util.SetGray(this.getBtn, true)
|
|
this.getBtn:GetComponent("Button").interactable = false
|
|
elseif state == 0 and isPass then
|
|
this.getTxt.text = Language[10024]
|
|
Util.SetGray(this.getBtn, false)
|
|
this.getBtn:GetComponent("Button").interactable = true
|
|
end
|
|
|
|
Util.AddClick(this.goBtn, function()
|
|
if sConFigData.Jump then
|
|
JumpManager.GoJump(sConFigData.Jump[1])
|
|
end
|
|
end)
|
|
end
|
|
if isPlayAnim then
|
|
SecTorPlayAnimByScroll(this.ScrollView)
|
|
isPlayAnim = false
|
|
end
|
|
end
|
|
end
|
|
|
|
function this.SingleDataShow(go, rewardData)
|
|
local activityRewardGo = go
|
|
-- if isPlayAnim then
|
|
-- activityRewardGo:SetActive(false)
|
|
-- else
|
|
-- activityRewardGo:SetActive(true)
|
|
-- end
|
|
local sConFigData = activityRewardConfig[rewardData.missionId]
|
|
local titleText = Util.GetGameObject(activityRewardGo, "titleImage/titleText"):GetComponent("Text")
|
|
titleText.text = GetLanguageStrById(sConFigData.ContentsShow)
|
|
local itemGroup = Util.GetGameObject(activityRewardGo, "content")
|
|
--滚动条复用重设itemview
|
|
if this.NoviceItemList[go] then
|
|
for i = 1, 4 do
|
|
this.NoviceItemList[go][i].gameObject:SetActive(false)
|
|
end
|
|
for i = 1, #sConFigData.Reward do
|
|
if this.NoviceItemList[go][i] then
|
|
this.NoviceItemList[go][i]:OnOpen(false, { sConFigData.Reward[i][1], sConFigData.Reward[i][2] }, 0.9,
|
|
false, false, false, sortingOrder)
|
|
this.NoviceItemList[go][i].gameObject:SetActive(true)
|
|
end
|
|
end
|
|
else
|
|
this.NoviceItemList[go] = {}
|
|
for i = 1, 4 do
|
|
this.NoviceItemList[go][i] = SubUIManager.Open(SubUIConfig.ItemView, itemGroup.transform)
|
|
this.NoviceItemList[go][i].gameObject:SetActive(false)
|
|
end
|
|
for i = 1, #sConFigData.Reward do
|
|
this.NoviceItemList[go][i]:OnOpen(false, { sConFigData.Reward[i][1], sConFigData.Reward[i][2] }, 0.9, false,
|
|
false, false, sortingOrder)
|
|
this.NoviceItemList[go][i].gameObject:SetActive(true)
|
|
end
|
|
end
|
|
local lingquButton = Util.GetGameObject(activityRewardGo.gameObject, "lingquButton")
|
|
local text = Util.GetGameObject(activityRewardGo.gameObject, "lingquButton/Text"):GetComponent("Text")
|
|
Util.GetGameObject(lingquButton.gameObject, "redPoint"):SetActive(false)
|
|
local qianwangButton = Util.GetGameObject(activityRewardGo.gameObject, "qianwangButton")
|
|
local getFinishText = Util.GetGameObject(activityRewardGo.gameObject, "getFinishText")
|
|
local getRewardProgress = Util.GetGameObject(activityRewardGo.gameObject, "getRewardProgress")
|
|
local needGetUpText = Util.GetGameObject(activityRewardGo.gameObject, "needGetUpText")
|
|
local state = rewardData.state
|
|
local value = sConFigData.Values[2][1]
|
|
local isPass = FightPointPassManager.IsFightPointPass(value)
|
|
lingquButton:SetActive(state > 0)
|
|
qianwangButton:SetActive(state == 0 and not isPass)
|
|
if state == 1 then
|
|
text.text = Language[10024]
|
|
Util.SetGray(lingquButton, false)
|
|
lingquButton:GetComponent("Button").interactable = true
|
|
elseif state == 2 then
|
|
text.text = Language[10025]
|
|
Util.SetGray(lingquButton, true)
|
|
lingquButton:GetComponent("Button").interactable = false
|
|
else
|
|
|
|
end
|
|
-- getFinishText:SetActive(state == 1)
|
|
getFinishText:SetActive(false)
|
|
--needGetUpText:SetActive(state == 0)
|
|
-- if isShowNeedGetUpTextId == 0 and state == 0 or isShowNeedGetUpTextId == rewardData.missionId then
|
|
-- isShowNeedGetUpTextId = rewardData.missionId
|
|
-- needGetUpText:SetActive(false)
|
|
-- end
|
|
needGetUpText:SetActive(false)
|
|
getRewardProgress:SetActive(state == 0)
|
|
if state == 0 and isPass then
|
|
getRewardProgress:GetComponent("Text").text = "(1/1)"
|
|
else
|
|
getRewardProgress:GetComponent("Text").text = "(0/1)"
|
|
end
|
|
Util.AddOnceClick(qianwangButton, function()
|
|
if sConFigData.Jump then
|
|
JumpManager.GoJump(sConFigData.Jump[1])
|
|
end
|
|
end)
|
|
Util.AddOnceClick(lingquButton, function()
|
|
-- if isShowNeedGetUpTextId ~= rewardData.missionId then
|
|
-- PopupTipPanel.ShowTip("需先领取上一奖励!")
|
|
-- return
|
|
-- end
|
|
NetManager.GetActivityRewardRequest(rewardData.missionId, activityData.activityId, function(drop)
|
|
--ActivityGiftManager.GetActivityRewardRequest(ActivityTypeDef.OpenSeverWelfare,rewardData.missionId, function(msg)
|
|
UIManager.OpenPanel(UIName.RewardItemPopup, drop, 1, function()
|
|
this.OnShowPanelData(false, false)
|
|
Game.GlobalEvent:DispatchEvent(GameEvent.Mission.GetOpenServerRewardRefreshFightPoint)
|
|
end)
|
|
end)
|
|
end)
|
|
end
|
|
|
|
this.timer = Timer.New()
|
|
--刷新倒计时显示
|
|
function this.RemainTimeDown(_timeTextExpertgo, _timeTextExpert, timeDown)
|
|
if timeDown > 0 then
|
|
if _timeTextExpertgo then
|
|
_timeTextExpertgo:SetActive(true)
|
|
end
|
|
if _timeTextExpert then
|
|
_timeTextExpert.text = Language[10026] .. GetLeftTimeStrByDeltaTime2(timeDown)
|
|
end
|
|
if this.timer then
|
|
this.timer:Stop()
|
|
this.timer = nil
|
|
end
|
|
this.timer = Timer.New(function()
|
|
if _timeTextExpert then
|
|
_timeTextExpert.text = Language[10026] .. GetLeftTimeStrByDeltaTime2(timeDown)
|
|
end
|
|
if timeDown < 0 then
|
|
if _timeTextExpertgo then
|
|
_timeTextExpertgo:SetActive(false)
|
|
end
|
|
this.timer:Stop()
|
|
this.timer = nil
|
|
end
|
|
timeDown = timeDown - 1
|
|
end, 1, -1, true)
|
|
this.timer:Start()
|
|
else
|
|
if _timeTextExpertgo then
|
|
_timeTextExpertgo:SetActive(false)
|
|
end
|
|
end
|
|
end
|
|
|
|
--界面关闭时调用(用于子类重写)
|
|
function OpenSeverWelfarePanel:OnClose()
|
|
if this.timer then
|
|
this.timer:Stop()
|
|
this.timer = nil
|
|
end
|
|
end
|
|
|
|
--界面销毁时调用(用于子类重写)
|
|
function OpenSeverWelfarePanel:OnDestroy()
|
|
this.spLoader:Destroy()
|
|
end
|
|
|
|
return OpenSeverWelfarePanel
|