forked from endernon/PGRData
251 lines
8.8 KiB
Lua
251 lines
8.8 KiB
Lua
local tableInsert = table.insert
|
|
|
|
local BTN_INDEX = {
|
|
First = 1,
|
|
Second = 2
|
|
}
|
|
|
|
local XUiDoomsdayFubenTask = XLuaUiManager.Register(XLuaUi, "UiDoomsdayFubenTask")
|
|
|
|
function XUiDoomsdayFubenTask:OnAwake()
|
|
self:AddListener()
|
|
end
|
|
|
|
function XUiDoomsdayFubenTask:OnStart(stageId)
|
|
--self.SelectIndex = 1
|
|
self.StageId = stageId
|
|
self.StageData = XDataCenter.DoomsdayManager.GetStageData(self.StageId)
|
|
|
|
--self.BtnTargetIdDic = {}
|
|
|
|
self:InitView()
|
|
end
|
|
|
|
function XUiDoomsdayFubenTask:OnEnable()
|
|
--self.PanelTab:SelectIndex(self.SelectIndex)
|
|
end
|
|
|
|
function XUiDoomsdayFubenTask:InitView()
|
|
--XDoomsdayConfigs.TargetConfig
|
|
local stageData = self.StageData
|
|
local mainTargetId = XDoomsdayConfigs.StageConfig:GetProperty(self.StageId, "MainTaskId")
|
|
local config = XDoomsdayConfigs.TargetConfig:GetConfig(mainTargetId)
|
|
--任务名
|
|
self.TxtReport.text = config.Name
|
|
--任务Tips
|
|
self:RefreshTemplateGrids(
|
|
self.TxtNewsInhabitant,
|
|
config.Tips,
|
|
self.ContentNewInhabitant,
|
|
nil,
|
|
"TaskDescGrids",
|
|
function(grid, desc)
|
|
grid.TxtNewsInhabitant.text = desc
|
|
end
|
|
)
|
|
--任务描述
|
|
self.TxtDescSub.text = config.Desc
|
|
--是否通关
|
|
local passed = stageData:IsTargetFinished(mainTargetId)
|
|
self.ImgGradeStarActive.gameObject:SetActiveEx(passed)
|
|
self.ImgGradeStarUnactive.gameObject:SetActiveEx(not passed)
|
|
|
|
--任务进度
|
|
self:BindViewModelPropertiesToObj(
|
|
stageData:GetTarget(mainTargetId),
|
|
function(value, maxValue)
|
|
self.TxtProgressNumSub.text = string.format("<color=#1b3750><size=28>%s</size></color>/%s", value, maxValue)
|
|
self.ImgProgressSub.fillAmount = XUiHelper.GetFillAmountValue(value, maxValue)
|
|
end,
|
|
"_Value",
|
|
"_MaxValue"
|
|
)
|
|
end
|
|
|
|
function XUiDoomsdayFubenTask:AddListener()
|
|
local closeFunc = handler(self, self.Close)
|
|
self.BtnTanchuangCloseBig.CallBack = closeFunc
|
|
--self.BtnBg.CallBack = closeFunc
|
|
--self.BtnGiveUp.CallBack = handler(self, self.OnClickBtnGiveUp)
|
|
end
|
|
|
|
--==============================
|
|
---@desc 废弃的方法
|
|
--==============================
|
|
function XUiDoomsdayFubenTask:InitViewDiscard()
|
|
--local stageData = self.StageData
|
|
--
|
|
--local btns = {}
|
|
--local btnIndex = 1
|
|
--
|
|
----一级标题
|
|
--local targeGroup = stageData:GetTargetGroup()
|
|
--for index, targeIdList in ipairs(targeGroup) do
|
|
-- local targeIdCount = #targeIdList
|
|
-- if targeIdCount ~= 0 then
|
|
-- local btnModel = self:GetCertainBtnModel(BTN_INDEX.First, targeIdCount > 1)
|
|
-- local btn = XUiHelper.Instantiate(btnModel, self.BtnContent)
|
|
-- btn.gameObject:SetActiveEx(true)
|
|
--
|
|
-- local uiButton = btn:GetComponent("XUiButton")
|
|
-- tableInsert(btns, uiButton)
|
|
-- if index == BTN_INDEX.First then
|
|
-- self.BtnTargetIdDic[btnIndex] = targeIdList[1]
|
|
-- btn:SetName(CsXTextManagerGetText("DoomsdayTaskMain"))
|
|
-- else
|
|
-- btn:SetName(CsXTextManagerGetText("DoomsdayTaskSub"))
|
|
-- end
|
|
-- btnIndex = btnIndex + 1
|
|
--
|
|
-- --二级标题
|
|
-- local firstIndex = btnIndex
|
|
-- for i, targeId in ipairs(targeIdList) do
|
|
-- local tmpBtnModel = self:GetCertainBtnModel(BTN_INDEX.Second, nil, i, targeIdCount)
|
|
-- local tmpBtn = XUiHelper.Instantiate(tmpBtnModel, self.BtnContent)
|
|
-- tmpBtn:SetName(XDoomsdayConfigs.TargetConfig:GetProperty(targeId, "Name"))
|
|
-- tmpBtn.gameObject:SetActiveEx(true)
|
|
--
|
|
-- local tmpUiButton = tmpBtn:GetComponent("XUiButton")
|
|
-- tmpUiButton.SubGroupIndex = firstIndex
|
|
-- tableInsert(btns, tmpUiButton)
|
|
-- btnIndex = btnIndex + 1
|
|
--
|
|
-- tmpUiButton:ShowReddot(false)
|
|
--
|
|
-- self.BtnTargetIdDic[btnIndex] = targeId
|
|
-- end
|
|
-- end
|
|
--end
|
|
--
|
|
--self.PanelTab:Init(
|
|
-- btns,
|
|
-- function(index)
|
|
-- self:OnSelectedTog(index)
|
|
-- end
|
|
--)
|
|
end
|
|
|
|
--==============================
|
|
---@desc 废弃的方法
|
|
--==============================
|
|
function XUiDoomsdayFubenTask:OnSelectedTog(index)
|
|
--self.SelectIndex = index
|
|
--
|
|
--local stageId = self.StageId
|
|
--local targetId = self.BtnTargetIdDic[self.SelectIndex]
|
|
--local target = self.StageData:GetTarget(targetId)
|
|
--
|
|
--if index == BTN_INDEX.First then
|
|
-- --主要目标
|
|
-- targetId = XDoomsdayConfigs.StageConfig:GetProperty(stageId, "MainTaskId")
|
|
--
|
|
-- self.TxtAim1.text = XDoomsdayConfigs.TargetConfig:GetProperty(targetId, "Desc")
|
|
--
|
|
-- local value, maxValue = target:GetProperty("_Value"), target:GetProperty("_MaxValue")
|
|
-- self.TxtAim1Num.text = CsXTextManagerGetText("DoomsdayMainTargetProgress", value, maxValue)
|
|
-- self.ImgProgressAim1.fillAmount = XUiHelper.GetFillAmountValue(value, maxValue)
|
|
--
|
|
-- --主要目标通关提示
|
|
-- self:RefreshTemplateGrids(
|
|
-- self.MainTxtTips,
|
|
-- XDoomsdayConfigs.TargetConfig:GetProperty(targetId, "Tips"),
|
|
-- self.MainTipsContent,
|
|
-- nil,
|
|
-- "MainTargetTipGrids",
|
|
-- function(grid, tips)
|
|
-- local target = self.StageData:GetTarget(targetId)
|
|
-- grid.MainTxtTips.text = tips
|
|
-- end
|
|
-- )
|
|
--
|
|
-- --次要目标
|
|
-- self:RefreshTemplateGrids(
|
|
-- {
|
|
-- self.GridStageStar1,
|
|
-- self.GridStageStar2,
|
|
-- self.GridStageStar3
|
|
-- },
|
|
-- XDoomsdayConfigs.StageConfig:GetProperty(stageId, "SubTaskId"),
|
|
-- nil,
|
|
-- nil,
|
|
-- "SubTargetGrids",
|
|
-- function(grid, targetId)
|
|
-- local target = self.StageData:GetTarget(targetId)
|
|
--
|
|
-- grid.TxtActive.text = XDoomsdayConfigs.TargetConfig:GetProperty(targetId, "Desc")
|
|
-- grid.TxtUnActive.text = XDoomsdayConfigs.TargetConfig:GetProperty(targetId, "Desc")
|
|
--
|
|
-- grid.PanelActive.gameObject:SetActiveEx(true)
|
|
-- grid.PanelUnActive.gameObject:SetActiveEx(false)
|
|
--
|
|
-- local value, maxValue = target:GetProperty("_Value"), target:GetProperty("_MaxValue")
|
|
-- grid.TxtStageStar1Num.text = CsXTextManagerGetText("DoomsdayMainTargetProgress", value, maxValue)
|
|
-- grid.ImgProgressAim1.fillAmount = XUiHelper.GetFillAmountValue(value, maxValue)
|
|
-- end
|
|
-- )
|
|
--
|
|
-- self.PanelBranchlineTask.gameObject:SetActiveEx(false)
|
|
-- self.PanelMainlineTask.gameObject:SetActiveEx(true)
|
|
--else
|
|
-- if not targetId then
|
|
-- --点击了二级标题
|
|
-- return
|
|
-- end
|
|
--
|
|
-- --额外任务展示
|
|
-- self.TxtDescSub.text = XDoomsdayConfigs.TargetConfig:GetProperty(targetId, "Desc")
|
|
--
|
|
-- local value, maxValue = target:GetProperty("_Value"), target:GetProperty("_MaxValue")
|
|
-- self.TxtProgressNumSub.text = CsXTextManagerGetText("DoomsdayMainTargetProgress", value, maxValue)
|
|
-- self.ImgProgressSub.fillAmount = XUiHelper.GetFillAmountValue(value, maxValue)
|
|
--
|
|
-- --额外任务通关提示
|
|
-- self:RefreshTemplateGrids(
|
|
-- self.SubTxtTips,
|
|
-- XDoomsdayConfigs.TargetConfig:GetProperty(targetId, "Tips"),
|
|
-- self.SubTipsContent,
|
|
-- nil,
|
|
-- "MainTargetTipGrids",
|
|
-- function(grid, tips)
|
|
-- local target = self.StageData:GetTarget(targetId)
|
|
-- grid.SubTxtTips.text = tips
|
|
-- end
|
|
-- )
|
|
--
|
|
-- self.PanelMainlineTask.gameObject:SetActiveEx(false)
|
|
-- self.PanelBranchlineTask.gameObject:SetActiveEx(true)
|
|
--end
|
|
end
|
|
|
|
--==============================
|
|
---@desc 废弃的方法
|
|
--==============================
|
|
function XUiDoomsdayFubenTask:OnClickBtnGiveUp()
|
|
--self:Close()
|
|
--XDataCenter.DoomsdayManager.DoomsdayGiveUpTargetRequest(self.StageId, self.BtnTargetIdDic[self.SelectIndex])
|
|
end
|
|
|
|
--==============================
|
|
---@desc 废弃的方法
|
|
--==============================
|
|
function XUiDoomsdayFubenTask:GetCertainBtnModel(index, hasChild, pos, totalNum)
|
|
--if index == BTN_INDEX.First then
|
|
-- if hasChild then
|
|
-- return self.BtnFirstHasSnd
|
|
-- else
|
|
-- return self.BtnFirst
|
|
-- end
|
|
--elseif index == BTN_INDEX.Second then
|
|
-- if totalNum == 1 then
|
|
-- return self.BtnSecondAll
|
|
-- end
|
|
--
|
|
-- if pos == 1 then
|
|
-- return self.BtnSecondTop
|
|
-- elseif pos == totalNum then
|
|
-- return self.BtnSecondBottom
|
|
-- else
|
|
-- return self.BtnSecond
|
|
-- end
|
|
--end
|
|
end
|