270 lines
No EOL
13 KiB
Lua
270 lines
No EOL
13 KiB
Lua
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 |