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:
SL1900
2026-07-21 12:30:00 +09:00
parent a12087abad
commit 8c4bd41668
1334 changed files with 873026 additions and 95164 deletions
@@ -0,0 +1,29 @@
local SoldierBuffItemCtrl = class("SoldierBuffItemCtrl", BaseCtrl)
local RootPath = "Icon/SoldierBuffCard/"
local bgPath = "Icon/SoldierOtherIcon/"
SoldierBuffItemCtrl._mapNodeConfig = {
imgIcon = {sComponentName = "Image"},
imgBg = {sComponentName = "Image"}
}
SoldierBuffItemCtrl._mapEventConfig = {}
SoldierBuffItemCtrl._mapRedDotConfig = {}
function SoldierBuffItemCtrl:Awake()
end
function SoldierBuffItemCtrl:OnEnable()
end
function SoldierBuffItemCtrl:OnDisable()
end
function SoldierBuffItemCtrl:OnDestroy()
end
function SoldierBuffItemCtrl:SetData(mapCfg)
if mapCfg == nil then
return
end
self:SetPngSprite(self._mapNode.imgIcon, RootPath .. mapCfg.Icon)
if mapCfg.Rarity ~= 0 then
self:SetPngSprite(self._mapNode.imgBg, bgPath .. AllEnum.SoldierStrategyCardRarityIcon[mapCfg.Rarity] .. AllEnum.SoldierChessIconSurfix.S)
end
end
function SoldierBuffItemCtrl:OnRefresh()
end
return SoldierBuffItemCtrl
@@ -0,0 +1,13 @@
local SoldierBuffTipsItemCtrl = class("SoldierBuffTipsItemCtrl", BaseCtrl)
SoldierBuffTipsItemCtrl._mapEventConfig = {}
SoldierBuffTipsItemCtrl._mapRedDotConfig = {}
function SoldierBuffTipsItemCtrl:OnRefresh(mapCfg)
if mapCfg == nil then
return
end
self:SetPngSprite(self._mapNode.ImageIcon, mapCfg.Icon)
NovaAPI.SetTMPText(self._mapNode.TextName, mapCfg.Name or "")
local sDes = mapCfg.Desc or mapCfg.Des or ""
NovaAPI.SetTMPText(self._mapNode.TextDes, sDes)
end
return SoldierBuffTipsItemCtrl
@@ -0,0 +1,323 @@
local SoldierAttrData = require("GameCore.Data.DataClass.Soldier.SoldierAttrData")
local SoldierCharCardShopItemCtrl = class("SoldierCharCardShopItemCtrl", BaseCtrl)
local SYNERGY_TEMPLATE_PATH = "Game.UI.Soldier.Sandtable.Items.SoldierCharCardShopPartnerItemCtrl"
local _DestroyNode = function(node)
if node == nil then
return
end
if node.IsNull ~= nil and node:IsNull() == true then
return
end
destroy(node.gameObject or node)
end
SoldierCharCardShopItemCtrl._mapNodeConfig = {
imgUpgradeStar = {nCount = 5},
imgUpgrade = {},
btnItem = {
sComponentName = "UIButton",
callback = "OnBtnItemClick"
},
imgSelect = {},
imageRarity = {sComponentName = "Image"},
imgEmpty = {},
Container = {},
txtShopName = {sComponentName = "TMP_Text"},
txtCharName = {sComponentName = "TMP_Text"},
ImageIcon = {sComponentName = "Image"},
imgPosition = {},
img_Position = {sComponentName = "Image"},
imgRecommend = {sComponentName = "Image"},
imgUnavailable = {},
imgInHand = {},
txtCost = {sComponentName = "TMP_Text"},
goSynergyRoot = {
sComponentName = "RectTransform"
},
SynergyTemplate = {},
animRoot = {sNodeName = "AnimRoot", sComponentName = "Animator"},
FxCard_Random = {sComponentName = "Animator"}
}
SoldierCharCardShopItemCtrl._mapEventConfig = {
SoldierCharCardShopItemClicked = "OnEvent_SoldierCharCardShopItemClicked",
SoldierRecommend_Update = "SetTrackAndRecommend",
SoldierPartnerTrace = "SetTrackAndRecommend",
SoldierShopRefresh = "OnShopRefresh"
}
SoldierCharCardShopItemCtrl._mapRedDotConfig = {}
function SoldierCharCardShopItemCtrl:Awake()
self.nSlotIndex = 0
self.fnClickHost = nil
self.fnClickFunc = nil
self._tbSynergyItemCtrl = {}
self._tbSynergyItemGo = {}
self._mapNode.FxCard_Random.gameObject:SetActive(false)
end
function SoldierCharCardShopItemCtrl:OnEnable()
end
function SoldierCharCardShopItemCtrl:OnDisable()
self:SetEmpty()
end
function SoldierCharCardShopItemCtrl:OnDestroy()
self._objClickCallback = nil
self._fnClickCallback = nil
end
function SoldierCharCardShopItemCtrl:SetSlotIndex(nIndex)
self.nSlotIndex = nIndex
end
function SoldierCharCardShopItemCtrl:SetClickCallback(host, func)
self._objClickCallback = host
self._fnClickCallback = func
end
function SoldierCharCardShopItemCtrl:SetData(nCharId, nCost, nStar, bDisablePurchase)
self.nCharId = nCharId
if nCharId == nil or nCharId <= 0 then
self:SetEmpty()
return
end
local mapChar = ConfigTable.GetData("SoldierCharacter", nCharId)
if mapChar == nil then
self:SetEmpty()
return
end
self:SetNodeActive(self._mapNode.imgEmpty, false)
self:SetNodeActive(self._mapNode.Container, true)
self:RefreshBaseCard(mapChar)
self:SetInHand(nStar)
if nStar ~= nil then
self:SetUpgradeHint(nStar or 0)
end
local mapShopData
ForEachTableLine(DataTable.SoldierShopPool, function(mapData)
if mapData.ChessCharacterId == nCharId then
mapShopData = mapData
end
end)
if mapShopData ~= nil then
local nHasMoney = PlayerData.SoldierData:GetCurLevelData():GetItem(AllEnum.CoinItemId.SoldierCurrency)
self:SetAvailable(nHasMoney >= (nCost or 0) and not bDisablePurchase)
local sCost = tostring(nCost or 0)
if nHasMoney < (nCost or 0) then
sCost = "<color=#E15C73>" .. sCost .. "</color>"
end
self:SetCost(sCost)
end
self:RefreshSynergy()
end
function SoldierCharCardShopItemCtrl:SetEmpty()
self.nCharId = nil
self:SetNodeActive(self._mapNode.imgEmpty or self._mapNode.EmptyContainer or self._mapNode.imgEmpty, true)
self:SetNodeActive(self._mapNode.Container, false)
self:ResetAllStates()
end
function SoldierCharCardShopItemCtrl:ResetAllStates()
self:SetNodeActive(self._mapNode.imgRecommend, false)
self:SetNodeActive(self._mapNode.imgUnavailable, false)
self:SetNodeActive(self._mapNode.imgInHand, false)
self:SetNodeActive(self._mapNode.imgPosition, false)
self:SetUpgradeHint(0)
self:_ClearSynergyItems()
end
function SoldierCharCardShopItemCtrl:RefreshBaseCard(mapChar)
NovaAPI.SetTMPText(self._mapNode.txtShopName, mapChar.Name or "")
NovaAPI.SetTMPText(self._mapNode.txtCharName, mapChar.Name or "")
local mapSkin = ConfigTable.GetData("SoldierSkin", mapChar.Skin)
if mapSkin ~= nil then
self:SetPngSprite(self._mapNode.ImageIcon, mapSkin.Icon .. AllEnum.SoldierChessIconSurfix.L)
end
self:SetChessPosition(mapChar.Type)
self:SetRarity(mapChar.Rarity)
self:SetTrackAndRecommend()
end
function SoldierCharCardShopItemCtrl:SetRarity(nRarity)
if nRarity == nil then
return
end
self:SetPngSprite(self._mapNode.imageRarity, "Icon/SoldierOtherIcon/" .. AllEnum.SoldierChessRarityIcon[nRarity] .. AllEnum.SoldierChessIconSurfix.L)
end
function SoldierCharCardShopItemCtrl:SetChessPosition(nType)
self._mapNode.imgPosition.gameObject:SetActive(true)
if nType == nil then
return
end
local tbChessTypeConfig = CacheTable.GetData("_SoldierChessType", nType)
local sIcon = ""
if tbChessTypeConfig ~= nil then
sIcon = tbChessTypeConfig.Icon
end
local sPath = "Icon/SoldierOtherIcon/" .. sIcon
self:SetPngSprite(self._mapNode.img_Position, sPath)
end
function SoldierCharCardShopItemCtrl:SetTrackAndRecommend()
if self.nCharId == nil then
return
end
self._mapNode.imgRecommend.gameObject:SetActive(true)
local levelData = PlayerData.SoldierData:GetCurLevelData()
if levelData == nil then
self._mapNode.imgRecommend.gameObject:SetActive(false)
return
end
local bTrack = levelData:CheckChessTrace(self.nCharId)
local bRecommend = PlayerData.SoldierData:CheckChessRecommendState(self.nCharId)
local sIcon = ""
if bRecommend and bTrack then
sIcon = "Icon/SoldierOtherIcon/SoldierPartnerBuilds_03"
elseif bTrack then
sIcon = "Icon/SoldierOtherIcon/SoldierPartnerBuilds_02"
elseif bRecommend then
sIcon = "Icon/SoldierOtherIcon/SoldierPartnerBuilds_01"
else
self._mapNode.imgRecommend.gameObject:SetActive(false)
end
if sIcon ~= "" then
self:SetPngSprite(self._mapNode.imgRecommend, sIcon)
end
end
function SoldierCharCardShopItemCtrl:SetInHand(nStar)
if nStar ~= nil and 2 <= nStar then
self:SetNodeActive(self._mapNode.imgInHand, true)
return
end
local tbDeploy, tbWaiting, _ = PlayerData.SoldierData:GetCurLevelData():GetDeploy()
local bInHand = false
for k, v in pairs(tbDeploy) do
if v.nId == self.nCharId then
bInHand = true
break
end
end
if bInHand == false then
for k, v in pairs(tbWaiting) do
if v.nId == self.nCharId then
bInHand = true
break
end
end
end
self:SetNodeActive(self._mapNode.imgInHand, bInHand)
end
function SoldierCharCardShopItemCtrl:SetUpgradeHint(nStar)
nStar = nStar or 0
if nStar < 2 then
nStar = 0
end
if nStar == 0 then
self:SetNodeActive(self._mapNode.imgUpgrade, false)
return
else
self:SetNodeActive(self._mapNode.imgUpgrade, true)
end
for i = 1, 5 do
self:SetNodeActive(self._mapNode.imgUpgradeStar and self._mapNode.imgUpgradeStar[i], nStar >= i)
end
end
function SoldierCharCardShopItemCtrl:SetAvailable(bAvailable)
self:SetNodeActive(self._mapNode.imgUnavailable, not bAvailable)
end
function SoldierCharCardShopItemCtrl:SetCost(sCost)
NovaAPI.SetTMPText(self._mapNode.txtCost, sCost)
end
function SoldierCharCardShopItemCtrl:SetSelect(bSelect)
self:SetNodeActive(self._mapNode.imgSelect, bSelect)
end
function SoldierCharCardShopItemCtrl:GetAnimator()
if self._mapNode.animRoot == nil then
self._mapNode.animRoot = self.gameObejct.transform:GetChild(0):GetChild(0):GetComponent("Animator")
if self._mapNode.animRoot == nil then
return nil
end
end
return self._mapNode.animRoot
end
function SoldierCharCardShopItemCtrl:PlayRandomRefreshOneShot()
if self.timerRandomRefresh ~= nil then
self.timerRandomRefresh:Cancel()
self.timerRandomRefresh = nil
self._mapNode.FxCard_Random.gameObject:SetActive(false)
end
self._mapNode.FxCard_Random.gameObject:SetActive(true)
local nAnimLength = NovaAPI.GetAnimClipLength(self._mapNode.FxCard_Random, {
"ShopCardItem_random"
})
self.timerRandomRefresh = self:AddTimer(1, nAnimLength, function()
self._mapNode.FxCard_Random.gameObject:SetActive(false)
end, true, true, true)
end
function SoldierCharCardShopItemCtrl:RefreshSynergy()
self:_ClearSynergyItems()
self:SetNodeActive(self._mapNode.SynergyTemplate, false)
local tbPartnerTypes = SoldierAttrData.GetPartnerGroupsByChessId(self.nCharId)
if tbPartnerTypes == nil or #tbPartnerTypes == 0 then
self:SetNodeActive(self._mapNode.goSynergyRoot, false)
return
end
local goTemplate = self._mapNode.SynergyTemplate
local goRoot = self._mapNode.goSynergyRoot
if goTemplate == nil or goRoot == nil then
return
end
self:SetNodeActive(goRoot, true)
local trParent = goRoot.transform or goRoot
local nItemCount = 0
for _, nPartnerType in ipairs(tbPartnerTypes) do
local mapGroup = CacheTable.GetData("_SoldierPartnerGroup", nPartnerType)
if mapGroup ~= nil then
local goItem = instantiate(goTemplate, trParent)
self:SetNodeActive(goItem, true)
local ctrl = self:BindCtrlByNode(goItem, SYNERGY_TEMPLATE_PATH)
if ctrl ~= nil then
ctrl:OnRefresh(mapGroup)
nItemCount = nItemCount + 1
self._tbSynergyItemCtrl = self._tbSynergyItemCtrl or {}
self._tbSynergyItemGo = self._tbSynergyItemGo or {}
table.insert(self._tbSynergyItemCtrl, ctrl)
table.insert(self._tbSynergyItemGo, goItem)
else
_DestroyNode(goItem)
end
end
end
self:SetNodeActive(goRoot, 0 < nItemCount)
end
function SoldierCharCardShopItemCtrl:_ClearSynergyItems()
local tbSynergyItemCtrl = self._tbSynergyItemCtrl or {}
for _, ctrl in ipairs(tbSynergyItemCtrl) do
self:UnbindCtrlByNode(ctrl)
end
local tbSynergyItemGo = self._tbSynergyItemGo or {}
for _, goItem in ipairs(tbSynergyItemGo) do
_DestroyNode(goItem)
end
self._tbSynergyItemCtrl = {}
self._tbSynergyItemGo = {}
end
function SoldierCharCardShopItemCtrl:SetNodeActive(node, bActive)
if node == nil then
return
end
if node.gameObject ~= nil then
node.gameObject:SetActive(bActive)
else
node:SetActive(bActive)
end
end
function SoldierCharCardShopItemCtrl:OnBtnItemClick()
if self._fnClickCallback ~= nil and self.nCharId ~= nil then
self._fnClickCallback(self._objClickCallback, self.nCharId)
end
end
function SoldierCharCardShopItemCtrl:OnEvent_SoldierCharCardShopItemClicked(nCharId)
if nCharId == nil then
self:SetSelect(false)
return
end
self:SetSelect(nCharId == self.nCharId)
end
function SoldierCharCardShopItemCtrl:OnShopRefresh(bRandomRefresh)
if bRandomRefresh then
self:PlayRandomRefreshOneShot()
else
self:GetAnimator():Play("ShopCardItem_refresh")
end
end
return SoldierCharCardShopItemCtrl
@@ -0,0 +1,18 @@
local SoldierCharCardShopPartnerItemCtrl = class("SoldierCharCardShopPartnerItemCtrl", BaseCtrl)
SoldierCharCardShopPartnerItemCtrl._mapNodeConfig = {
txtPartnerName = {sComponentName = "TMP_Text"},
imgPartnerIcon = {sComponentName = "Image"}
}
SoldierCharCardShopPartnerItemCtrl._mapEventConfig = {}
SoldierCharCardShopPartnerItemCtrl._mapRedDotConfig = {}
function SoldierCharCardShopPartnerItemCtrl:Awake()
self._tbTimer = {}
end
function SoldierCharCardShopPartnerItemCtrl:OnRefresh(mapGroup)
if mapGroup == nil then
return
end
NovaAPI.SetTMPText(self._mapNode.txtPartnerName, mapGroup.Name or "")
self:SetPngSprite(self._mapNode.imgPartnerIcon, "Icon/SoldierPartner/" .. mapGroup.Icon .. AllEnum.SoldierChessIconSurfix.M)
end
return SoldierCharCardShopPartnerItemCtrl
@@ -0,0 +1,13 @@
local SoldierEffectDesItemCtrl = class("SoldierEffectDesItemCtrl", BaseCtrl)
SoldierEffectDesItemCtrl._mapNodeConfig = {}
SoldierEffectDesItemCtrl._mapEventConfig = {}
SoldierEffectDesItemCtrl._mapRedDotConfig = {}
function SoldierEffectDesItemCtrl:OnRefresh(tbData, nCardId)
if self._mapNode.TextName ~= nil then
NovaAPI.SetTMPText(self._mapNode.TextName, tbData and tbData.sName or "")
end
if self._mapNode.TextDes ~= nil then
NovaAPI.SetTMPText(self._mapNode.TextDes, tbData and tbData.sDes or "")
end
end
return SoldierEffectDesItemCtrl
@@ -0,0 +1,19 @@
local SoldierNodeItemCtrl = class("SoldierNodeItemCtrl", BaseCtrl)
function SoldierNodeItemCtrl:Awake()
self.serverData = PlayerData.SoldierData.ServerData
end
function SoldierNodeItemCtrl:OnEnable()
end
function SoldierNodeItemCtrl:OnDisable()
end
function SoldierNodeItemCtrl:OnDestroy()
end
function SoldierNodeItemCtrl:OnRefresh(nodeId)
local config = ConfigTable.GetData("SoldierNodePlan", nodeId)
if config then
self:SetPngSprite(self._mapNode.imgIcon, config.NodeIcon)
end
local curNodeId = self.serverData:GetNodeId()
self._mapNode.imgStatus:SetActive(curNodeId == nodeId)
end
return SoldierNodeItemCtrl