PGRData/Script/matrix/xui/xuiawarenesstf/XUiAwarenessTfChoice.lua

270 lines
No EOL
13 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

local XUiAwarenessTfChoice = XLuaUiManager.Register(XLuaUi, "UiAwarenessTfChoice")
local XUiGridSuitDetail = require("XUi/XUiEquipAwarenessReplace/XUiGridSuitDetail")
local XUiAwarenessTfBtnPos = require("XUi/XUiAwarenessTf/XUiAwarenessTfBtnPos")
local MAX_AWARENESS_ATTR_COUNT = 4 --包括了共鸣属性最大有4条
function XUiAwarenessTfChoice:OnAwake()
self:InitAutoScript()
end
function XUiAwarenessTfChoice:OnStart(suitIds, endTime)
self.SuitIds = suitIds
self.EndTime = endTime
self.PartIds = {}
self.PartList = {}
self.SuitList = {}
self.PartGroupGo = {}
self.PanelSelectSuit.gameObject:SetActive(false)
self.PanelSelectPart.gameObject:SetActive(false)
self.CurSelectPos = 1
self.CurSelectGrid = nil
self:InitSuitList()
end
function XUiAwarenessTfChoice:OnEnable()
if self.EndTime > 0 then
self.PanelCountDownA.gameObject:SetActive(true)
self.PanelCountDownB.gameObject:SetActive(true)
self:SetUpCountDown()
else
self.PanelCountDownA.gameObject:SetActive(false)
self.PanelCountDownB.gameObject:SetActive(false)
end
end
function XUiAwarenessTfChoice:OnDisable()
end
function XUiAwarenessTfChoice:OnDestroy()
if self.EndTime > 0 then
self:RemoveCountDown()
end
end
function XUiAwarenessTfChoice:OnGetEvents()
return nil
end
function XUiAwarenessTfChoice:OnNotify()
end
-- auto
-- Automatic generation of code, forbid to edit
function XUiAwarenessTfChoice:InitAutoScript()
self:AutoInitUi()
self:AutoAddListener()
end
function XUiAwarenessTfChoice:AutoInitUi()
self.BtnBack = self.Transform:Find("SafeAreaContentPane/PaneTop/BtnBack"):GetComponent("Button")
self.BtnMainUi = self.Transform:Find("SafeAreaContentPane/PaneTop/BtnMainUi"):GetComponent("Button")
self.PanelSelectSuit = self.Transform:Find("SafeAreaContentPane/PanelSelectSuit")
self.PanelSuitContent = self.Transform:Find("SafeAreaContentPane/PanelSelectSuit/Viewport/PanelSuitContent")
self.GridSuitSimple = self.Transform:Find("SafeAreaContentPane/PanelSelectSuit/Viewport/PanelSuitContent/GridSuitSimple")
self.TxtName = self.Transform:Find("SafeAreaContentPane/PanelSelectSuit/Viewport/PanelSuitContent/GridSuitSimple/TxtName"):GetComponent("Text")
self.RImgIcon = self.Transform:Find("SafeAreaContentPane/PanelSelectSuit/Viewport/PanelSuitContent/GridSuitSimple/RImgIcon"):GetComponent("RawImage")
self.PanelCountDownA = self.Transform:Find("SafeAreaContentPane/PanelSelectSuit/Left/PanelCountDownA")
self.TxtCountDownA = self.Transform:Find("SafeAreaContentPane/PanelSelectSuit/Left/PanelCountDownA/TxtCountDownA"):GetComponent("Text")
self.PanelSelectPart = self.Transform:Find("SafeAreaContentPane/PanelSelectPart")
self.PanelPartGroup = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelPartGroup")
self.UiAwarenessTfBtnPos = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelPartGroup/UiAwarenessTfBtnPos")
self.UiSelectBG = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelPartGroup/UiAwarenessTfBtnPos/UiSelectBG")
self.UiBtnBackNone = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelPartGroup/UiAwarenessTfBtnPos/UiBtnBackNone")
self.UiBtnBackHas = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelPartGroup/UiAwarenessTfBtnPos/UiBtnBackHas")
self.TxtPosNum = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelPartGroup/UiAwarenessTfBtnPos/TxtPosNum"):GetComponent("Text")
self.BtnPos = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelPartGroup/UiAwarenessTfBtnPos/BtnPos"):GetComponent("Button")
self.TxtSuitName = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/TxtSuitName"):GetComponent("Text")
self.PanelCountDownB = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelCountDownB")
self.TxtCountDownB = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelCountDownB/TxtCountDownB"):GetComponent("Text")
self.PanelAttrParent = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/GameObject/PanelAttrParent")
self.PanelAttr1 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/GameObject/PanelAttrParent/PanelAttr1")
self.TxtName1 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/GameObject/PanelAttrParent/PanelAttr1/TxtName1"):GetComponent("Text")
self.TxtAttr1 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/GameObject/PanelAttrParent/PanelAttr1/TxtAttr1"):GetComponent("Text")
self.PanelAttr2 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/GameObject/PanelAttrParent/PanelAttr2")
self.TxtName2 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/GameObject/PanelAttrParent/PanelAttr2/TxtName2"):GetComponent("Text")
self.TxtAttr2 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/GameObject/PanelAttrParent/PanelAttr2/TxtAttr2"):GetComponent("Text")
self.PanelAttr3 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/GameObject/PanelAttrParent/PanelAttr3")
self.TxtName3 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/GameObject/PanelAttrParent/PanelAttr3/TxtName3"):GetComponent("Text")
self.TxtAttr3 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/GameObject/PanelAttrParent/PanelAttr3/TxtAttr3"):GetComponent("Text")
self.PanelAttr4 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/GameObject/PanelAttrParent/PanelAttr4")
self.TxtName4 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/GameObject/PanelAttrParent/PanelAttr4/TxtName4"):GetComponent("Text")
self.TxtAttr4 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/GameObject/PanelAttrParent/PanelAttr4/TxtAttr4"):GetComponent("Text")
self.BtnCancle = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/BtnCancle"):GetComponent("Button")
self.PanelContent = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/SuitDis/PanelContent")
self.TxtSkillDes1 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/SuitDis/PanelContent/TxtSkillDes1"):GetComponent("Text")
self.TxtSkillDes2 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/SuitDis/PanelContent/TxtSkillDes2"):GetComponent("Text")
self.TxtSkillDes3 = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/SuitDis/PanelContent/TxtSkillDes3"):GetComponent("Text")
self.PanelSelectAwareness = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelSelectAwareness")
self.TxtPosNum = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelSelectAwareness/TxtPosNum"):GetComponent("Text")
self.TxtNum = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelSelectAwareness/TxtNum"):GetComponent("Text")
self.GridCurSelectPart = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelSelectAwareness/GridCurSelectPart")
self.RImgIconA = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/PanelSelectAwareness/GridCurSelectPart/RImgIcon"):GetComponent("RawImage")
self.BtnConfirm = self.Transform:Find("SafeAreaContentPane/PanelSelectPart/BtnConfirm"):GetComponent("Button")
end
function XUiAwarenessTfChoice:AutoAddListener()
self:RegisterClickEvent(self.BtnBack, self.OnBtnBackClick)
self:RegisterClickEvent(self.BtnMainUi, self.OnBtnMainUiClick)
self:RegisterClickEvent(self.BtnPos, self.OnBtnPosClick)
self:RegisterClickEvent(self.BtnCancle, self.OnBtnCancleClick)
self:RegisterClickEvent(self.BtnConfirm, self.OnBtnConfirmClick)
end
-- auto
function XUiAwarenessTfChoice:OnBtnPosClick()
end
function XUiAwarenessTfChoice:OnBtnCancleClick()
self.PanelSelectPart.gameObject:SetActive(false)
end
function XUiAwarenessTfChoice:OnBtnConfirmClick()
self.PanelSelectPart.gameObject:SetActive(false)
XLuaUiManager.Open("UiAwarenessTf", self.PartIds[self.CurSelectPos])
end
function XUiAwarenessTfChoice:OnBtnBackClick()
self:Close()
end
function XUiAwarenessTfChoice:OnBtnMainUiClick()
XLuaUiManager.RunMain()
end
function XUiAwarenessTfChoice:InitSuitList()
self.GridSuitSimple.gameObject:SetActive(false)
self.PanelSelectSuit.gameObject:SetActive(true)
local clickCb = function(suitId, grid)
self:OnSuitGridClick(suitId, grid)
end
for i = 1, #self.SuitIds do
if not self.SuitList[i] then
local tempGo = CS.UnityEngine.Object.Instantiate(self.GridSuitSimple.gameObject)
tempGo.transform:SetParent(self.PanelSuitContent, false)
self.SuitList[i] = XUiGridSuitDetail.New(tempGo, self, clickCb)
end
self.SuitList[i]:Refresh(self.SuitIds[i], nil, true)
self.SuitList[i].GameObject:SetActive(true)
end
for i = #self.SuitIds + 1, #self.SuitList do
self.SuitList[i].GameObject:SetActive(false)
end
end
function XUiAwarenessTfChoice:OnSuitGridClick(suitId)
self:InitSelectPart(suitId)
self.PanelSelectPart.gameObject:SetActive(true)
end
function XUiAwarenessTfChoice:OnSelectPart(pos)
for i = 1, #self.PartIds do
if i == pos then
self.PartList[i].UiSelectBG.gameObject:SetActive(true)
else
self.PartList[i].UiSelectBG.gameObject:SetActive(false)
end
end
self.CurSelectPos = pos
self:UpdateSelectPos()
end
function XUiAwarenessTfChoice:InitSelectPart(suitId)
self.UiAwarenessTfBtnPos.gameObject:SetActive(false)
local cb = function(pos)
self:OnSelectPart(pos)
end
--套装名字
self.TxtSuitName.text = XDataCenter.EquipManager.GetSuitName(suitId)
--套装效果
local skillDesList = XDataCenter.EquipManager.GetSuitSkillDesList(suitId)
for i = 1, XEquipConfig.MAX_SUIT_SKILL_COUNT do
if skillDesList[i * 2] then
self["TxtSkillDes" .. i].text = skillDesList[i * 2]
self["TxtSkillDes" .. i].gameObject:SetActive(true)
else
self["TxtSkillDes" .. i].gameObject:SetActive(false)
end
end
--部位选择
--获取数据
self.PartIds = XDataCenter.EquipManager.GetEquipTemplateIdsBySuitId(suitId)
table.sort(self.PartIds, function(a, b)
local aid = XGoodsCommonManager.GetGoodsShowParamsByTemplateId(a)
local bid = XGoodsCommonManager.GetGoodsShowParamsByTemplateId(b)
return aid.Site < bid.Site
end)
self.PartSiteIds = {}
for i = 1, #self.PartIds do
self.PartSiteIds[i] = XGoodsCommonManager.GetGoodsShowParamsByTemplateId(self.PartIds[i]).Site
end
--生成按钮
for i = 1, #self.PartIds do
if not self.PartList[i] then
local tempGo = CS.UnityEngine.Object.Instantiate(self.UiAwarenessTfBtnPos.gameObject)
tempGo.transform:SetParent(self.PanelPartGroup, false)
tempGo.gameObject:SetActive(true)
self.PartList[i] = XUiAwarenessTfBtnPos.New(tempGo, i, self.PartSiteIds[i], self.PartIds[i], cb)
end
self.PartList[i].GameObject:SetActive(true)
end
for i = #self.PartIds + 1, #self.PartList do
self.PartList[i].GameObject:SetActive(false)
end
--初始化按钮
for i = 1, #self.PartIds do
self.PartList[i]:Refresh(self.PartSiteIds[i], self.PartIds[i])
end
--默认选择1号
self:OnSelectPart(1)
end
--更新中间的Grid
function XUiAwarenessTfChoice:UpdateSelectPos()
if not self.CurSelectGrid then
self.CurSelectGrid = XUiGridCommon.New(self, self.GridCurSelectPart)
end
self.CurSelectGrid:Refresh(self.PartIds[self.CurSelectPos])
self.TxtPosNum.text = CS.XTextManager.GetText("AwarenessTfPos", self.PartSiteIds[self.CurSelectPos])
self.TxtNum.text = XDataCenter.EquipManager.GetEquipCountByTemplateID(self.PartIds[self.CurSelectPos])
self:UpdateEquipAttr()
end
--更新属性(未获取只能显示1级的属性)
function XUiAwarenessTfChoice:UpdateEquipAttr()
local attrCount = 1
local attrMap = XDataCenter.EquipManager.GetTemplateEquipAttrMap(self.PartIds[self.CurSelectPos], 1)
for _, attrInfo in pairs(attrMap) do
if attrCount > MAX_AWARENESS_ATTR_COUNT then break end
self["TxtName" .. attrCount].text = attrInfo.Name
self["TxtAttr" .. attrCount].text = attrInfo.Value
self["PanelAttr" .. attrCount].gameObject:SetActive(true)
attrCount = attrCount + 1
end
for i = attrCount, MAX_AWARENESS_ATTR_COUNT do
self["PanelAttr" .. i].gameObject:SetActive(false)
end
end
--设置倒计时
function XUiAwarenessTfChoice:SetUpCountDown()
local remainTime = self.EndTime - XTime.GetServerNowTimestamp()
XCountDown.CreateTimer(self.GameObject.name, remainTime)
XCountDown.BindTimer(self.GameObject, self.GameObject.name, function(v)
self.TxtCountDownA.text = XUiHelper.GetTime(v, XUiHelper.TimeFormatType.DRAW)
self.TxtCountDownB.text = self.TxtCountDownA.text
end)
end
function XUiAwarenessTfChoice:RemoveCountDown()
XCountDown.RemoveTimer(self.Name)
end