Update - 1.13.0.124
EN: 1.13.0.124 CN: 1.13.0.124 JP: 1.13.0.128 KR: 1.13.0.130
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
local SoldierRecommendCellCtrl = class("SoldierRecommendCellCtrl", BaseCtrl)
|
||||
SoldierRecommendCellCtrl._mapNodeConfig = {
|
||||
txt_title = {sComponentName = "TMP_Text"},
|
||||
sv_char = {
|
||||
sComponentName = "LoopScrollView"
|
||||
},
|
||||
img_Char = {sComponentName = "Image"},
|
||||
btn_Apply = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Apply"
|
||||
},
|
||||
txt_Apply = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Soldier_Recommend_Apply"
|
||||
},
|
||||
btn_Cancel = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Cancel"
|
||||
},
|
||||
txt_Cancel = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Soldier_Recommend_Cancel"
|
||||
},
|
||||
img_Use = {},
|
||||
txt_Use = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Soldier_Recommend_Use"
|
||||
}
|
||||
}
|
||||
SoldierRecommendCellCtrl._mapEventConfig = {
|
||||
SoldierRecommend_Update = "OnEvent_SoldierRecommendCell_Update"
|
||||
}
|
||||
SoldierRecommendCellCtrl._mapRedDotConfig = {}
|
||||
function SoldierRecommendCellCtrl:Awake()
|
||||
self.tbCharItemCtrl = {}
|
||||
end
|
||||
function SoldierRecommendCellCtrl:OnEnable()
|
||||
end
|
||||
function SoldierRecommendCellCtrl:OnDisable()
|
||||
for _, v in ipairs(self.tbCharItemCtrl) do
|
||||
self:UnbindCtrlByNode(v)
|
||||
end
|
||||
self.tbCharItemCtrl = nil
|
||||
end
|
||||
function SoldierRecommendCellCtrl:OnDestroy()
|
||||
end
|
||||
function SoldierRecommendCellCtrl:SetItemData(mapRecommendData, bInSoldier)
|
||||
self.bInSoldier = bInSoldier
|
||||
self.mapRecommendData = mapRecommendData
|
||||
self.cfg = ConfigTable.GetData("SoldierRecommendBuilds", self.mapRecommendData.nRecommendId)
|
||||
NovaAPI.SetTMPText(self._mapNode.txt_title, self.cfg.Title)
|
||||
local nMainCharId = self.cfg.CharacterId
|
||||
local mainCharCfg = ConfigTable.GetData("SoldierCharacter", nMainCharId)
|
||||
if mainCharCfg ~= nil then
|
||||
local skinConfig = ConfigTable.GetData("SoldierSkin", mainCharCfg.Skin)
|
||||
if skinConfig then
|
||||
self:SetPngSprite(self._mapNode.img_Char, skinConfig.Icon .. AllEnum.SoldierChessIconSurfix.S)
|
||||
end
|
||||
end
|
||||
self._mapNode.sv_char:Init(#self.mapRecommendData.charList, self, self.OnCharRefreshGrid, self.OnCharGridBtnClick, false)
|
||||
self:SetApplyStatus()
|
||||
end
|
||||
function SoldierRecommendCellCtrl:OnCharRefreshGrid(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
local charData = self.mapRecommendData.charList[nIndex]
|
||||
local go_char = goGrid.transform:Find("AnimRoot/SoldierCharCardItem")
|
||||
local nInstanceId = go_char:GetInstanceID()
|
||||
if not self.tbCharItemCtrl[nInstanceId] then
|
||||
self.tbCharItemCtrl[nInstanceId] = self:BindCtrlByNode(go_char, "Game.UI.Soldier.Template.Character.SoldierCharCardItemCtrl")
|
||||
end
|
||||
self.tbCharItemCtrl[nInstanceId]:SetItemData(charData.nId)
|
||||
self.tbCharItemCtrl[nInstanceId]:SetStar(charData.nStar)
|
||||
self.tbCharItemCtrl[nInstanceId]:SetAttribute(nIndex)
|
||||
end
|
||||
function SoldierRecommendCellCtrl:SetApplyStatus()
|
||||
local bApply = false
|
||||
local recommendData = PlayerData.SoldierData:GetRecommendData(self.bInSoldier)
|
||||
if recommendData ~= nil and recommendData.nRecommendId == self.mapRecommendData.nRecommendId then
|
||||
bApply = true
|
||||
end
|
||||
self._mapNode.btn_Apply.gameObject:SetActive(not bApply)
|
||||
self._mapNode.btn_Cancel.gameObject:SetActive(bApply)
|
||||
self._mapNode.img_Use.gameObject:SetActive(bApply)
|
||||
end
|
||||
function SoldierRecommendCellCtrl:OnCharGridBtnClick(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
local charId = self.mapRecommendData.charList[nIndex].nId
|
||||
end
|
||||
function SoldierRecommendCellCtrl:OnBtnClick_Apply()
|
||||
PlayerData.SoldierData:SetRecommendData(self.mapRecommendData.nRecommendId, self.bInSoldier)
|
||||
end
|
||||
function SoldierRecommendCellCtrl:OnBtnClick_Cancel()
|
||||
PlayerData.SoldierData:SetRecommendData(0, self.bInSoldier)
|
||||
end
|
||||
function SoldierRecommendCellCtrl:OnEvent_SoldierRecommendCell_Update()
|
||||
self:SetApplyStatus()
|
||||
end
|
||||
return SoldierRecommendCellCtrl
|
||||
@@ -0,0 +1,84 @@
|
||||
local SoldierRecommendCtrl = class("SoldierRecommendCtrl", BaseCtrl)
|
||||
SoldierRecommendCtrl._mapNodeConfig = {
|
||||
Topbar = {
|
||||
sNodeName = "TopBarPanel",
|
||||
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
|
||||
},
|
||||
btnHome = {},
|
||||
txt_tips = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Soldier_Recommend_Tips"
|
||||
},
|
||||
sv_recommend = {
|
||||
sComponentName = "LoopScrollView"
|
||||
}
|
||||
}
|
||||
SoldierRecommendCtrl._mapEventConfig = {}
|
||||
SoldierRecommendCtrl._mapRedDotConfig = {}
|
||||
function SoldierRecommendCtrl:Awake()
|
||||
local param = self:GetPanelParam()
|
||||
if type(param) == "table" then
|
||||
self.bInSoldier = param[1]
|
||||
end
|
||||
self.bInSoldier = self.bInSoldier or false
|
||||
self.animator = self.gameObject:GetComponent("Animator")
|
||||
end
|
||||
function SoldierRecommendCtrl:OnEnable()
|
||||
self.tbRecommendCellCtrl = {}
|
||||
self.tbRecommendData = {}
|
||||
self:InitData()
|
||||
EventManager.Hit("SoldierRecommendPanel_Open")
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
self._mapNode.btnHome.gameObject:SetActive(not self.bInSoldier)
|
||||
end
|
||||
cs_coroutine.start(wait)
|
||||
end
|
||||
function SoldierRecommendCtrl:OnDisable()
|
||||
for _, v in ipairs(self.tbRecommendCellCtrl) do
|
||||
self:UnbindCtrlByNode(v)
|
||||
end
|
||||
self.tbRecommendCellCtrl = nil
|
||||
EventManager.Hit("SoldierRecommendPanel_Close")
|
||||
end
|
||||
function SoldierRecommendCtrl:InitData()
|
||||
local tbRecommendData = PlayerData.SoldierData:GetAllRecommendData()
|
||||
if tbRecommendData == nil then
|
||||
return
|
||||
end
|
||||
for _, v in ipairs(tbRecommendData) do
|
||||
table.insert(self.tbRecommendData, v)
|
||||
end
|
||||
local nApplyData = PlayerData.SoldierData:GetRecommendData(self.bInSoldier)
|
||||
if nApplyData ~= nil then
|
||||
table.sort(self.tbRecommendData, function(a, b)
|
||||
if a.nRecommendId == nApplyData.nRecommendId then
|
||||
return true
|
||||
end
|
||||
if b.nRecommendId == nApplyData.nRecommendId then
|
||||
return false
|
||||
end
|
||||
return a.nRecommendId < b.nRecommendId
|
||||
end)
|
||||
end
|
||||
self._mapNode.sv_recommend:SetAnim(0.08)
|
||||
self._mapNode.sv_recommend:Init(#self.tbRecommendData, self, self.OnRecommendRefreshGrid, self.OnRecommendGridBtnClick, false)
|
||||
end
|
||||
function SoldierRecommendCtrl:OnRecommendRefreshGrid(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
local mapRecommendData = self.tbRecommendData[nIndex]
|
||||
local nInstanceID = goGrid:GetInstanceID()
|
||||
if not self.tbRecommendCellCtrl[nInstanceID] then
|
||||
self.tbRecommendCellCtrl[nInstanceID] = self:BindCtrlByNode(goGrid, "Game.UI.Soldier.Recommend.SoldierRecommendCellCtrl")
|
||||
end
|
||||
self.tbRecommendCellCtrl[nInstanceID]:SetItemData(mapRecommendData, self.bInSoldier)
|
||||
end
|
||||
function SoldierRecommendCtrl:OnRecommendGridBtnClick(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
local mapRecommendData = self.tbRecommendData[nIndex]
|
||||
self.animator:Play("SoldierRecommendPanel_out")
|
||||
self:AddTimer(1, 0.26, function()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.SoldierRecommendDetailPanel, mapRecommendData, self.bInSoldier)
|
||||
end, true, true, true)
|
||||
end
|
||||
return SoldierRecommendCtrl
|
||||
@@ -0,0 +1,217 @@
|
||||
local SoldierRecommendDetailCtrl = class("SoldierRecommendDetailCtrl", BaseCtrl)
|
||||
local iconPath = "Icon/SoldierBuffCard/"
|
||||
local iconPath2 = "Icon/SoldierOtherIcon/"
|
||||
SoldierRecommendDetailCtrl._mapNodeConfig = {
|
||||
Topbar = {
|
||||
sNodeName = "TopBarPanel",
|
||||
sCtrlName = "Game.UI.TopBarEx.TopBarCtrl"
|
||||
},
|
||||
btnHome = {},
|
||||
img_Use = {},
|
||||
txt_Use = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Soldier_Recommend_Use"
|
||||
},
|
||||
MainChar = {
|
||||
nCount = 3,
|
||||
sCtrlName = "Game.UI.Soldier.Template.Character.SoldierCharSupportCardItemCtrl"
|
||||
},
|
||||
BackChar = {
|
||||
nCount = 6,
|
||||
sCtrlName = "Game.UI.Soldier.Template.Character.SoldierCharSupportCardItemCtrl"
|
||||
},
|
||||
txt_title = {sComponentName = "TMP_Text"},
|
||||
txt_buildTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Soldier_Recommend_BuildTitle"
|
||||
},
|
||||
txt_skillTitle = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Soldier_RecommendDetail_Tips"
|
||||
},
|
||||
txt_desc = {sComponentName = "TMP_Text"},
|
||||
img_pos = {nCount = 3, sComponentName = "Image"},
|
||||
partnerCtrl = {
|
||||
sNodeName = "PartnerRoot",
|
||||
sCtrlName = "Game.UI.Soldier.Recommend.SpliderRecommendPartnerCtrl"
|
||||
},
|
||||
starterCard = {},
|
||||
strategyCardPrefab = {},
|
||||
buffList = {
|
||||
sNodeName = "BuffListRoot"
|
||||
},
|
||||
btn_Apply = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Apply"
|
||||
},
|
||||
txt_Apply = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Soldier_Recommend_Apply"
|
||||
},
|
||||
btn_Cancel = {
|
||||
sComponentName = "UIButton",
|
||||
callback = "OnBtnClick_Cancel"
|
||||
},
|
||||
txt_Cancel = {
|
||||
sComponentName = "TMP_Text",
|
||||
sLanguageId = "Soldier_Recommend_Cancel"
|
||||
},
|
||||
charDetialRoot = {sComponentName = "Transform"},
|
||||
parnterDetialRoot = {sComponentName = "Transform"}
|
||||
}
|
||||
SoldierRecommendDetailCtrl._mapEventConfig = {}
|
||||
SoldierRecommendDetailCtrl._mapRedDotConfig = {}
|
||||
function SoldierRecommendDetailCtrl:Awake()
|
||||
local param = self:GetPanelParam()
|
||||
if type(param) == "table" then
|
||||
self.mapRecommendData = param[1]
|
||||
self.bInSoldier = param[2]
|
||||
end
|
||||
self.nRecommendId = self.mapRecommendData.nRecommendId
|
||||
if self.mapRecommendData == nil then
|
||||
return
|
||||
end
|
||||
self.recommendCfg = ConfigTable.GetData("SoldierRecommendBuilds", self.nRecommendId)
|
||||
if self.recommendCfg == nil then
|
||||
return
|
||||
end
|
||||
self:RefreshUI()
|
||||
self:SetApplyStatus()
|
||||
end
|
||||
function SoldierRecommendDetailCtrl:OnEnable()
|
||||
local wait = function()
|
||||
coroutine.yield(CS.UnityEngine.WaitForEndOfFrame())
|
||||
self._mapNode.btnHome.gameObject:SetActive(not self.bInSoldier)
|
||||
end
|
||||
cs_coroutine.start(wait)
|
||||
end
|
||||
function SoldierRecommendDetailCtrl:RefreshUI()
|
||||
NovaAPI.SetTMPText(self._mapNode.txt_title, self.recommendCfg.Title)
|
||||
NovaAPI.SetTMPText(self._mapNode.txt_desc, self.recommendCfg.Desc)
|
||||
for i = 1, 3 do
|
||||
local charData = self.mapRecommendData.charList[i]
|
||||
if charData then
|
||||
self._mapNode.MainChar[i]:SetItemData(charData.nId)
|
||||
self._mapNode.MainChar[i]:SetStar(charData.nStar)
|
||||
do
|
||||
local callback = function(obj, nCharId)
|
||||
local chessData = {
|
||||
nId = charData.nId,
|
||||
nStar = charData.nStar
|
||||
}
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.SoldierCharCardTips, self._mapNode.charDetialRoot, chessData)
|
||||
EventManager.Hit("OnSetTipsPosition", self._mapNode.charDetialRoot:GetChild(0).position, self._mapNode.charDetialRoot:GetChild(1).position, self._mapNode.charDetialRoot:GetChild(2).position)
|
||||
EventManager.Hit("SoldierCharTips_ShowBg")
|
||||
end
|
||||
self._mapNode.MainChar[i]:SetClickCallback(_, callback)
|
||||
end
|
||||
end
|
||||
end
|
||||
for i = 1, 3 do
|
||||
local img_pos = self._mapNode.img_pos[i]
|
||||
local nCfgId = PlayerData.SoldierData:GetSoldierPositionEffectDataId(i)
|
||||
local cfg = ConfigTable.GetData("SoldierPositionEffect", nCfgId)
|
||||
if cfg then
|
||||
self:SetPngSprite(img_pos, iconPath2 .. cfg.Icon)
|
||||
end
|
||||
end
|
||||
for i = 4, 9 do
|
||||
local charData = self.mapRecommendData.charList[i]
|
||||
if charData then
|
||||
self._mapNode.BackChar[i - 3]:SetItemData(charData.nId)
|
||||
self._mapNode.BackChar[i - 3]:SetStar(charData.nStar)
|
||||
local callback = function(obj, nCharId)
|
||||
local chessData = {
|
||||
nId = charData.nId,
|
||||
nStar = charData.nStar,
|
||||
nPositionType = nPositionType
|
||||
}
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.SoldierCharCardTips, self._mapNode.charDetialRoot, chessData)
|
||||
EventManager.Hit("OnSetTipsPosition", self._mapNode.charDetialRoot:GetChild(0).position, self._mapNode.charDetialRoot:GetChild(1).position, self._mapNode.charDetialRoot:GetChild(2).position)
|
||||
EventManager.Hit("SoldierCharTips_ShowBg")
|
||||
end
|
||||
self._mapNode.BackChar[i - 3]:SetClickCallback(_, callback)
|
||||
else
|
||||
self._mapNode.BackChar[i - 3]:SetItemData(nil)
|
||||
end
|
||||
end
|
||||
local img_starterCardIcon = self._mapNode.starterCard.transform:Find("img_iconBg/img_icon"):GetComponent("Image")
|
||||
local txt_name = self._mapNode.starterCard.transform:Find("txt_name"):GetComponent("TMP_Text")
|
||||
local starterCardConfig = ConfigTable.GetData("SoldierStarterCard", self.recommendCfg.StarterCard)
|
||||
if starterCardConfig then
|
||||
self:SetPngSprite(img_starterCardIcon, iconPath .. starterCardConfig.Icon)
|
||||
NovaAPI.SetTMPText(txt_name, starterCardConfig.Name)
|
||||
local btn_detail = self._mapNode.starterCard.transform:Find("btn_detail"):GetComponent("UIButton")
|
||||
btn_detail.onClick:RemoveAllListeners()
|
||||
btn_detail.onClick:AddListener(function()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.SoldierSelectStarterCardItem, self.recommendCfg.StarterCard)
|
||||
end)
|
||||
end
|
||||
local tr = self._mapNode.buffList.transform
|
||||
for i = tr.childCount, 1, -1 do
|
||||
GameObject.Destroy(tr:GetChild(i - 1).gameObject)
|
||||
end
|
||||
for _, buffId in ipairs(self.recommendCfg.StrategyCard) do
|
||||
local buffConfig = ConfigTable.GetData("SoldierStrategyCard", buffId)
|
||||
if buffConfig then
|
||||
local go_buff = instantiate(self._mapNode.strategyCardPrefab, tr)
|
||||
go_buff.transform:SetParent(tr)
|
||||
go_buff.transform.localScale = Vector3.one
|
||||
local img_icon = go_buff.transform:Find("img_iconBg/img_icon"):GetComponent("Image")
|
||||
local img_bg = go_buff.transform:Find("img_iconBg"):GetComponent("Image")
|
||||
local txt_name = go_buff.transform:Find("txt_name"):GetComponent("TMP_Text")
|
||||
local btn_detail = go_buff.transform:Find("btn_detail"):GetComponent("UIButton")
|
||||
btn_detail.onClick:RemoveAllListeners()
|
||||
btn_detail.onClick:AddListener(function()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.SoldierSelectStrategyCardItem, buffId)
|
||||
end)
|
||||
self:SetPngSprite(img_icon, iconPath .. buffConfig.Icon)
|
||||
if buffConfig.Rarity ~= 0 then
|
||||
self:SetPngSprite(img_bg, iconPath2 .. AllEnum.SoldierStrategyCardRarityIcon[buffConfig.Rarity] .. AllEnum.SoldierChessIconSurfix.S)
|
||||
end
|
||||
NovaAPI.SetTMPText(txt_name, buffConfig.Name)
|
||||
go_buff:SetActive(true)
|
||||
end
|
||||
end
|
||||
local tbPartnerAdd = decodeJson(self.recommendCfg.PartnerAdd)
|
||||
local mapExtraPartner = {}
|
||||
for k, v in pairs(tbPartnerAdd) do
|
||||
mapExtraPartner[tonumber(k)] = tonumber(v)
|
||||
end
|
||||
local tbExPartner = {}
|
||||
for partnerId, addLevel in pairs(mapExtraPartner) do
|
||||
local partnerCfg = ConfigTable.GetData("SoldierPartner", partnerId)
|
||||
if partnerCfg then
|
||||
tbExPartner[partnerCfg.PartnerType] = addLevel
|
||||
end
|
||||
end
|
||||
self._mapNode.partnerCtrl:RefreshPartner(self.mapRecommendData.charList, tbExPartner)
|
||||
self._mapNode.partnerCtrl:SetPartnerDetailRoot(self._mapNode.parnterDetialRoot)
|
||||
end
|
||||
function SoldierRecommendDetailCtrl:SetApplyStatus()
|
||||
local bApply = false
|
||||
local recommendData = PlayerData.SoldierData:GetRecommendData(self.bInSoldier)
|
||||
if recommendData ~= nil and recommendData.nRecommendId == self.mapRecommendData.nRecommendId then
|
||||
bApply = true
|
||||
end
|
||||
self._mapNode.btn_Apply.gameObject:SetActive(not bApply)
|
||||
self._mapNode.btn_Cancel.gameObject:SetActive(bApply)
|
||||
self._mapNode.img_Use.gameObject:SetActive(bApply)
|
||||
end
|
||||
function SoldierRecommendDetailCtrl:OnDestroy()
|
||||
end
|
||||
function SoldierRecommendDetailCtrl:OnBtnClick_Apply()
|
||||
PlayerData.SoldierData:SetRecommendData(self.mapRecommendData.nRecommendId, self.bInSoldier)
|
||||
self:SetApplyStatus()
|
||||
end
|
||||
function SoldierRecommendDetailCtrl:OnBtnClick_Cancel()
|
||||
PlayerData.SoldierData:SetRecommendData(0, self.bInSoldier)
|
||||
self:SetApplyStatus()
|
||||
end
|
||||
function SoldierRecommendDetailCtrl:OnBtnClick_StarterCard()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.SoldierSelectStarterCardItem, self.recommendCfg.StarterCard)
|
||||
end
|
||||
function SoldierRecommendDetailCtrl:OnBtnClick_StrategyCard()
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.SoldierStrategyCardTips, self.gameObject.transform, nBuffId)
|
||||
end
|
||||
return SoldierRecommendDetailCtrl
|
||||
@@ -0,0 +1,20 @@
|
||||
local SoldierRecommendDetailPanel = class("SoldierRecommendDetailPanel", BasePanel)
|
||||
SoldierRecommendDetailPanel._tbDefine = {
|
||||
{
|
||||
sPrefabPath = "Soldier/SoldierRecommendDetailPanel.prefab",
|
||||
sCtrlName = "Game.UI.Soldier.Recommend.SoldierRecommendDetailCtrl"
|
||||
}
|
||||
}
|
||||
function SoldierRecommendDetailPanel:Awake()
|
||||
end
|
||||
function SoldierRecommendDetailPanel:OnEnable()
|
||||
end
|
||||
function SoldierRecommendDetailPanel:OnAfterEnter()
|
||||
end
|
||||
function SoldierRecommendDetailPanel:OnDisable()
|
||||
end
|
||||
function SoldierRecommendDetailPanel:OnDestroy()
|
||||
end
|
||||
function SoldierRecommendDetailPanel:OnRelease()
|
||||
end
|
||||
return SoldierRecommendDetailPanel
|
||||
@@ -0,0 +1,20 @@
|
||||
local SoldierRecommendPanel = class("SoldierRecommendPanel", BasePanel)
|
||||
SoldierRecommendPanel._tbDefine = {
|
||||
{
|
||||
sPrefabPath = "Soldier/SoldierRecommendPanel.prefab",
|
||||
sCtrlName = "Game.UI.Soldier.Recommend.SoldierRecommendCtrl"
|
||||
}
|
||||
}
|
||||
function SoldierRecommendPanel:Awake()
|
||||
end
|
||||
function SoldierRecommendPanel:OnEnable()
|
||||
end
|
||||
function SoldierRecommendPanel:OnAfterEnter()
|
||||
end
|
||||
function SoldierRecommendPanel:OnDisable()
|
||||
end
|
||||
function SoldierRecommendPanel:OnDestroy()
|
||||
end
|
||||
function SoldierRecommendPanel:OnRelease()
|
||||
end
|
||||
return SoldierRecommendPanel
|
||||
@@ -0,0 +1,78 @@
|
||||
local SpliderRecommendPartnerCtrl = class("SpliderRecommendPartnerCtrl", BaseCtrl)
|
||||
local SoldierAttrData = require("GameCore.Data.DataClass.Soldier.SoldierAttrData")
|
||||
local iconPath = "Icon/SoldierOtherIcon/"
|
||||
local partnerPath = "Icon/SoldierPartner/"
|
||||
SpliderRecommendPartnerCtrl._mapNodeConfig = {
|
||||
sv_partner = {
|
||||
sComponentName = "LoopScrollView"
|
||||
}
|
||||
}
|
||||
SpliderRecommendPartnerCtrl._mapEventConfig = {}
|
||||
SpliderRecommendPartnerCtrl._mapRedDotConfig = {}
|
||||
function SpliderRecommendPartnerCtrl:Awake()
|
||||
end
|
||||
function SpliderRecommendPartnerCtrl:OnDestroy()
|
||||
end
|
||||
function SpliderRecommendPartnerCtrl:RefreshPartner(tbCharList, tbExPartner)
|
||||
self.tbCharList = tbCharList
|
||||
local _, tbUIData = SoldierAttrData.CalcActivePartners(self.tbCharList, tbExPartner)
|
||||
self.tbPartner = tbUIData
|
||||
self:RefreshPartnerUI()
|
||||
end
|
||||
function SpliderRecommendPartnerCtrl:RefreshPartnerUI()
|
||||
self._mapNode.sv_partner:Init(#self.tbPartner, self, self.OnPartnerRefreshGrid, self.OnPartnerGridBtnClick, false)
|
||||
end
|
||||
function SpliderRecommendPartnerCtrl:OnPartnerRefreshGrid(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
local partner = self.tbPartner[nIndex]
|
||||
local partnerGroupCfg = CacheTable.GetData("_SoldierPartnerGroup", partner.nType)
|
||||
if partnerGroupCfg == nil then
|
||||
return
|
||||
end
|
||||
local nIndex = table.indexof(partner.tbNumList, partner.nActiveNum)
|
||||
local partnerCfgList = CacheTable.GetData("_SoldierPartner", partner.nType)
|
||||
if partnerCfgList == nil then
|
||||
return
|
||||
end
|
||||
local partnerCfg = partnerCfgList[partner.nActiveLevel]
|
||||
if partnerCfg == nil then
|
||||
partnerCfg = partnerCfgList[1]
|
||||
end
|
||||
local img_bg = goGrid.transform:Find("img_icon"):GetComponent("Image")
|
||||
local img_icon = goGrid.transform:Find("img_icon/img_Partnericon"):GetComponent("Image")
|
||||
local txt_name = goGrid.transform:Find("txt_name"):GetComponent("TMP_Text")
|
||||
local txtPartner = goGrid.transform:Find("imgPartnerbg/txt_level"):GetComponent("TMP_Text")
|
||||
local txtPartner2 = goGrid.transform:Find("imgLevelBg/txt_level2"):GetComponent("TMP_Text")
|
||||
if partner.nActiveLevel == 0 then
|
||||
self:SetPngSprite(img_bg, iconPath .. AllEnum.SoldierPartnerLevelIcon[GameEnum.PartnerLevelQuality.None].bg)
|
||||
else
|
||||
self:SetPngSprite(img_bg, iconPath .. AllEnum.SoldierPartnerLevelIcon[partnerCfg.PartnerLevelQuality].bg)
|
||||
end
|
||||
self:SetPngSprite(img_icon, partnerPath .. partnerGroupCfg.Icon .. AllEnum.SoldierChessIconSurfix.M)
|
||||
NovaAPI.SetTMPText(txt_name, partnerCfg.Name)
|
||||
NovaAPI.SetTMPText(txtPartner2, partner.nCurNum)
|
||||
local strLevel = ""
|
||||
for i = 1, #partner.tbNumList do
|
||||
if 1 < i then
|
||||
strLevel = strLevel .. "/"
|
||||
end
|
||||
if i ~= partner.nActiveLevel then
|
||||
strLevel = strLevel .. partner.tbNumList[i]
|
||||
else
|
||||
strLevel = strLevel .. "<color=#EED9BD>" .. partner.tbNumList[i] .. "</color>"
|
||||
end
|
||||
end
|
||||
NovaAPI.SetTMPText(txtPartner, strLevel)
|
||||
end
|
||||
function SpliderRecommendPartnerCtrl:SetPartnerDetailRoot(tr)
|
||||
self.partnerDetailRoot = tr
|
||||
end
|
||||
function SpliderRecommendPartnerCtrl:OnPartnerGridBtnClick(goGrid, gridIndex)
|
||||
local nIndex = gridIndex + 1
|
||||
local mapPartner = self.tbPartner[nIndex]
|
||||
EventManager.Hit(EventId.OpenPanel, PanelId.SoldierPartnerTips, self.partnerDetailRoot, mapPartner.nType, mapPartner.nActiveLevel, false, self.tbCharList)
|
||||
local tr = self.partnerDetailRoot:GetChild(0)
|
||||
EventManager.Hit("OnSetParnterTipsPosition", tr.position, tr:GetChild(0).position, tr:GetChild(1).position)
|
||||
EventManager.Hit("SoldierCharTips_ShowBg")
|
||||
end
|
||||
return SpliderRecommendPartnerCtrl
|
||||
Reference in New Issue
Block a user