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

270 lines
13 KiB
Lua
Raw Normal View History

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