Update - 2.1.0.147

EN: 2.1.0.147
CN: 2.1.0.147
JP: 2.1.0.149
KR: 2.1.0.154
This commit is contained in:
SL1900
2026-11-13 12:00:00 +09:00
parent c84dd6f891
commit da1d2be9fc
822 changed files with 1752348 additions and 1554 deletions
@@ -241,6 +241,18 @@ function StarTowerBuildBriefCtrl:FilterAndSortBuildData()
return bSelectA
end
end
if a.bDislike == nil then
a.bDislike = false
end
if b.bDislike == nil then
b.bDislike = false
end
if a.bDislike ~= b.bDislike then
return b.bDislike
end
if a.bPreference ~= b.bPreference then
return a.bPreference
end
if self.nSortOrder == SortOrder.Descending then
return a.nBuildId > b.nBuildId
else
@@ -268,6 +280,18 @@ function StarTowerBuildBriefCtrl:FilterAndSortBuildData()
return bSelectA
end
end
if a.bDislike == nil then
a.bDislike = false
end
if b.bDislike == nil then
b.bDislike = false
end
if a.bDislike ~= b.bDislike then
return b.bDislike
end
if a.bPreference ~= b.bPreference then
return a.bPreference
end
if self.nSortOrder == SortOrder.Descending then
if a.nScore ~= b.nScore then
return a.nScore > b.nScore
@@ -516,6 +540,8 @@ function StarTowerBuildBriefCtrl:Awake()
self.mapListItemCtrl = {}
self.tbCoinRate = ConfigTable.GetConfigArray("StarTowerBuildTransformParas")
local tbLanguageId = {
"RoguelikeBuild_Manage_DD_Unlock",
"RoguelikeBuild_Manage_DD_Dislike",
"RoguelikeBuild_Manage_DD_N",
"RoguelikeBuild_Manage_DD_R",
"RoguelikeBuild_Manage_DD_SR",
@@ -668,10 +694,28 @@ function StarTowerBuildBriefCtrl:OnBtnClick_FastSelectDeleteBuild(btn)
if #self.tbCurShow == 0 then
return
end
for _, mapBuild in ipairs(self.tbCurShow) do
if PlayerData.Build:IsBuildEditable(mapBuild.nBuildId) and mapBuild.mapRank.Rarity >= 4 - filterGrade and not mapBuild.bLock and self.mapDelete[mapBuild.nBuildId] == nil then
self.mapDelete[mapBuild.nBuildId] = 0
self.nSelectedDeleteCount = self.nSelectedDeleteCount + 1
if filterGrade < 2 then
if filterGrade == 0 then
for _, mapBuild in ipairs(self.tbCurShow) do
if PlayerData.Build:IsBuildEditable(mapBuild.nBuildId) and not mapBuild.bLock and self.mapDelete[mapBuild.nBuildId] == nil then
self.mapDelete[mapBuild.nBuildId] = 0
self.nSelectedDeleteCount = self.nSelectedDeleteCount + 1
end
end
else
for _, mapBuild in ipairs(self.tbCurShow) do
if PlayerData.Build:IsBuildEditable(mapBuild.nBuildId) and mapBuild.bDislike and self.mapDelete[mapBuild.nBuildId] == nil then
self.mapDelete[mapBuild.nBuildId] = 0
self.nSelectedDeleteCount = self.nSelectedDeleteCount + 1
end
end
end
else
for _, mapBuild in ipairs(self.tbCurShow) do
if PlayerData.Build:IsBuildEditable(mapBuild.nBuildId) and mapBuild.mapRank.Rarity >= 6 - filterGrade and not mapBuild.bLock and self.mapDelete[mapBuild.nBuildId] == nil then
self.mapDelete[mapBuild.nBuildId] = 0
self.nSelectedDeleteCount = self.nSelectedDeleteCount + 1
end
end
end
self._mapNode.BuildList:ForceRefresh()
@@ -16,6 +16,7 @@ StarTowerBuildBriefItem._mapNodeConfig = {
sComponentName = "UIButton",
callback = "OnBtnClick_Lock"
},
imgDiscard = {},
btn_Detail = {
sComponentName = "UIButton",
callback = "OnBtnClick_Detail"
@@ -159,7 +160,9 @@ function StarTowerBuildBriefItem:RefreshInfo()
NovaAPI.SetTMPText(self._mapNode.txtBuildName, self._mapData.sName)
end
self._mapNode.imgLike:SetActive(self._mapData.bPreference)
self._mapNode.imgDiscard:SetActive(self._mapData.bDislike)
self._mapNode.btn_LockIcon.interactable = self._mapData.bLock
self._mapNode.btn_Lock.gameObject:SetActive(not self._mapData.bDislike)
end
function StarTowerBuildBriefItem:RefreshChar()
for i = 1, 3 do
@@ -18,6 +18,19 @@ StarTowerBuildDetailCtrl._mapNodeConfig = {
sComponentName = "TMP_Text",
sLanguageId = "StarTower_Build_Like"
},
btn_Discard = {
sComponentName = "UIButton",
callback = "OnBtnClick_Dislike"
},
btn_DiscardIcon = {sComponentName = "Button"},
img_DiscardIcon = {
sNodeName = "btn_DiscardIcon",
sComponentName = "Image"
},
txtDiscard = {
sComponentName = "TMP_Text",
sLanguageId = "BuildDetail_Dislike1"
},
txtBuildLock = {sComponentName = "TMP_Text"},
btn_Lock = {
sComponentName = "UIButton",
@@ -63,6 +76,7 @@ function StarTowerBuildDetailCtrl:InitPanel()
end
local bEditable = PlayerData.Build:IsBuildEditable(self.mapBuild.nBuildId)
self._mapNode.btn_Preference.gameObject:SetActive(bEditable)
self._mapNode.btn_Discard.gameObject:SetActive(bEditable)
self._mapNode.btn_Lock.gameObject:SetActive(bEditable)
self._mapNode.TMPBuildSaveTime.gameObject:SetActive(bEditable)
self._mapNode.btnDelete.gameObject:SetActive(bEditable)
@@ -72,6 +86,7 @@ function StarTowerBuildDetailCtrl:InitPanel()
self._mapNode.btn_PreferenceIcon.interactable = self.mapBuild.bPreference
NovaAPI.SetTMPColor(self._mapNode.txtLike, self.mapBuild.bPreference and Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764) or Color(0.5803921568627451, 0.6666666666666666, 0.7529411764705882))
end
self:SetDisLikeBtn()
if self.mapBuild.bLock ~= nil then
self._mapNode.btn_LockIcon.interactable = self.mapBuild.bLock
NovaAPI.SetTMPText(self._mapNode.txtBuildLock, self.mapBuild.bLock and ConfigTable.GetUIText("RoguelikeBuild_Save_Lock") or ConfigTable.GetUIText("RoguelikeBuild_Save_Unlock"))
@@ -85,6 +100,17 @@ function StarTowerBuildDetailCtrl:InitPanel()
self._mapNode.BuildDetail:Refresh(self.mapBuild)
self._mapNode.ContentList:Refresh(self.mapBuild, self._panel.nCachedIdx)
end
function StarTowerBuildDetailCtrl:SetDisLikeBtn()
self._mapNode.btn_DiscardIcon.interactable = self.mapBuild.bDislike
if self.mapBuild.bDislike then
NovaAPI.SetTMPText(self._mapNode.txtDiscard, ConfigTable.GetUIText("BuildDetail_Dislike2"))
NovaAPI.SetImageColor(self._mapNode.img_DiscardIcon, Color(1, 1, 1, 1))
else
NovaAPI.SetTMPText(self._mapNode.txtDiscard, ConfigTable.GetUIText("BuildDetail_Dislike1"))
NovaAPI.SetImageColor(self._mapNode.img_DiscardIcon, (self.mapBuild.bLock or self.mapBuild.bPreference) and Color(0.5803921568627451, 0.6666666666666666, 0.7529411764705882) or Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764))
end
NovaAPI.SetTMPColor(self._mapNode.txtDiscard, self.mapBuild.bDislike and Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764) or Color(0.5803921568627451, 0.6666666666666666, 0.7529411764705882))
end
function StarTowerBuildDetailCtrl:OpenConfirmHint()
local nCoin = math.floor(math.min(math.max(self.mapBuild.nScore / tonumber(self.tbCoinRate[1]), tonumber(self.tbCoinRate[2])), tonumber(self.tbCoinRate[3])))
local CheckCallback = function()
@@ -151,6 +177,10 @@ function StarTowerBuildDetailCtrl:OnBtnClick_Preference(btn)
local callback = function()
self._mapNode.btn_PreferenceIcon.interactable = self.mapBuild.bPreference
NovaAPI.SetTMPColor(self._mapNode.txtLike, self.mapBuild.bPreference and Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764) or Color(0.5803921568627451, 0.6666666666666666, 0.7529411764705882))
self._mapNode.btn_LockIcon.interactable = self.mapBuild.bLock
NovaAPI.SetTMPText(self._mapNode.txtBuildLock, self.mapBuild.bLock and ConfigTable.GetUIText("RoguelikeBuild_Save_Lock") or ConfigTable.GetUIText("RoguelikeBuild_Save_Unlock"))
NovaAPI.SetTMPColor(self._mapNode.txtBuildLock, self.mapBuild.bLock and Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764) or Color(0.5803921568627451, 0.6666666666666666, 0.7529411764705882))
self:SetDisLikeBtn()
end
if self.mapBuild.bPreference then
table.insert(tbPreferenceCheckOut, self.mapBuild.nBuildId)
@@ -159,6 +189,20 @@ function StarTowerBuildDetailCtrl:OnBtnClick_Preference(btn)
end
PlayerData.Build:SetBuildPreference(tbPreferenceCheckIn, tbPreferenceCheckOut, callback)
end
function StarTowerBuildDetailCtrl:OnBtnClick_Dislike(btn)
if not PlayerData.Build:IsBuildEditable(self.mapBuild.nBuildId) then
return
end
if self.mapBuild.bPreference or self.mapBuild.bLock then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Build_UnableDislike"))
return
end
local callback = function()
self:SetDisLikeBtn()
end
local bDislike = not self.mapBuild.bDislike
PlayerData.Build:SetBuildDislike(self.mapBuild.nBuildId, bDislike, callback)
end
function StarTowerBuildDetailCtrl:OnBtnClick_Lock(btn)
if not PlayerData.Build:IsBuildEditable(self.mapBuild.nBuildId) then
return
@@ -167,6 +211,7 @@ function StarTowerBuildDetailCtrl:OnBtnClick_Lock(btn)
self._mapNode.btn_LockIcon.interactable = self.mapBuild.bLock
NovaAPI.SetTMPText(self._mapNode.txtBuildLock, self.mapBuild.bLock and ConfigTable.GetUIText("RoguelikeBuild_Save_Lock") or ConfigTable.GetUIText("RoguelikeBuild_Save_Unlock"))
NovaAPI.SetTMPColor(self._mapNode.txtBuildLock, self.mapBuild.bLock and Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764) or Color(0.5803921568627451, 0.6666666666666666, 0.7529411764705882))
self:SetDisLikeBtn()
end
PlayerData.Build:ChangeBuildLock(self.mapBuild.nBuildId, not self.mapBuild.bLock, callback)
end
@@ -202,15 +247,6 @@ function StarTowerBuildDetailCtrl:OnBtnClick_EditBuild()
if PlayerData.Build:IsLimitedTrialBuild(self.mapBuild.nBuildId) then
return
end
if self.mapBuild.bLock then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("BuildModifier_ValidTips5"))
return
end
local nScoreFixedable = ConfigTable.GetConfigNumber("BuildModifierScoreMin")
if nScoreFixedable > self.mapBuild.nScore then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("BuildModifier_ValidTips2"))
return
end
local nIdx = self._mapNode.ContentList.nCurTab
if nIdx == 1 then
local nModifierState = self.mapBuild and self.mapBuild.nModifierState
@@ -220,7 +256,6 @@ function StarTowerBuildDetailCtrl:OnBtnClick_EditBuild()
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("BuildModifier_ValidTips3"))
return
end
EventManager.Hit(EventId.OpenPanel, PanelId.BuildModifierPotentialPanel, self.mapBuild.nBuildId)
else
local nModifierState = self.mapBuild and self.mapBuild.nModifierState
local bNoteModifiable = nModifierState == AllEnum.BuildModifierState.NotModified or nModifierState == AllEnum.BuildModifierState.PotentialModified
@@ -229,7 +264,38 @@ function StarTowerBuildDetailCtrl:OnBtnClick_EditBuild()
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("BuildModifier_ValidTips4"))
return
end
EventManager.Hit(EventId.OpenPanel, PanelId.BuildModifierMusicPanel, self.mapBuild.nBuildId)
end
if self.mapBuild.bLock then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("BuildModifier_ValidTips5"))
return
end
local nScoreFixedable = ConfigTable.GetConfigNumber("BuildModifierScoreMin")
if nScoreFixedable > self.mapBuild.nScore then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("BuildModifier_ValidTips2"))
return
end
local callback = function()
local nIdx = self._mapNode.ContentList.nCurTab
if nIdx == 1 then
EventManager.Hit(EventId.OpenPanel, PanelId.BuildModifierPotentialPanel, self.mapBuild.nBuildId)
else
EventManager.Hit(EventId.OpenPanel, PanelId.BuildModifierMusicPanel, self.mapBuild.nBuildId)
end
end
local confirmCallback = function()
PlayerData.Build:SetBuildDislike(self.mapBuild.nBuildId, false, callback)
end
local sHint = orderedFormat(ConfigTable.GetUIText("BuildModifier_DislikeHint") or "")
local msg = {
nType = AllEnum.MessageBox.Confirm,
sContent = sHint,
callbackConfirm = confirmCallback,
bDisableSnap = false
}
if self.mapBuild.bDislike then
EventManager.Hit(EventId.OpenMessageBox, msg)
else
callback()
end
end
function StarTowerBuildDetailCtrl:OnEvent_ContentChangeTab(nIdx)
@@ -59,17 +59,18 @@ StarTowerBuildDetailItemCtrl._mapNodeConfig = {
}
StarTowerBuildDetailItemCtrl._mapEventConfig = {}
StarTowerBuildDetailItemCtrl._mapRedDotConfig = {}
function StarTowerBuildDetailItemCtrl:Refresh(mapData)
function StarTowerBuildDetailItemCtrl:Refresh(mapData, bDisableJump)
self.mapBuild = mapData
local nBuildSource = PlayerData.Build:GetBuildSourceByData(mapData)
self.bTrialBuild = nBuildSource == AllEnum.BuildSource.Trial or nBuildSource == AllEnum.BuildSource.LimitedTrial or mapData.bTrial == true
local bInteractable = self.mapBuild.bTrial ~= true
self._mapNode.btnLeader.interactable = not self.bTrialBuild
self.bDisableJump = bDisableJump == true or nBuildSource == AllEnum.BuildSource.LimitedTrial
local bCharInteractable = not self.bDisableJump and not self.bTrialBuild
self._mapNode.btnLeader.interactable = bCharInteractable
for _, btnSub in pairs(self._mapNode.btnSub) do
btnSub.interactable = not self.bTrialBuild
btnSub.interactable = bCharInteractable
end
for _, btnDiscItem in pairs(self._mapNode.btnDiscItem) do
btnDiscItem.interactable = bInteractable
btnDiscItem.interactable = not self.bDisableJump
end
self:RefreshInfo()
self:RefreshChar()
@@ -137,6 +138,9 @@ function StarTowerBuildDetailItemCtrl:OnBtnClick_Attr()
EventManager.Hit(EventId.OpenPanel, PanelId.BuildAttrPreview, self.mapBuild.mapRank.Id, self.mapBuild.nScore)
end
function StarTowerBuildDetailItemCtrl:OnBtnClick_Disc(btn, nIndex)
if self.bDisableJump then
return
end
local nDiscId = self.mapBuild.tbDisc[nIndex]
if nDiscId == nil or nDiscId == 0 then
return
@@ -150,7 +154,7 @@ function StarTowerBuildDetailItemCtrl:OnBtnClick_Disc(btn, nIndex)
end
end
function StarTowerBuildDetailItemCtrl:OpenCharDetail(nIndex)
if self.bTrialBuild then
if self.bDisableJump or self.bTrialBuild then
return
end
local nCharTid = self.mapBuild.tbChar[nIndex].nTid
@@ -43,6 +43,19 @@ StarTowerBuildSaveCtrl._mapNodeConfig = {
sComponentName = "TMP_Text",
sLanguageId = "StarTower_Build_Save"
},
btn_Discard = {
sComponentName = "UIButton",
callback = "OnBtnClick_Dislike"
},
btn_DiscardIcon = {sComponentName = "Button"},
img_DiscardIcon = {
sNodeName = "btn_DiscardIcon",
sComponentName = "Image"
},
txtDiscard = {
sComponentName = "TMP_Text",
sLanguageId = "BuildDetail_Dislike1"
},
Mask = {
sComponentName = "CanvasGroup"
},
@@ -75,12 +88,25 @@ StarTowerBuildSaveCtrl._mapEventConfig = {}
StarTowerBuildSaveCtrl._mapRedDotConfig = {}
function StarTowerBuildSaveCtrl:InitPanel()
self._mapNode.goBuildContent:SetActive(true)
self._mapNode.BuildDetail:Refresh(self.mapBuild)
self._mapNode.BuildDetail:Refresh(self.mapBuild, true)
self._mapNode.ContentList:Refresh(self.mapBuild)
self.bLock = self.mapBuild.bLock
self.bDislike = self.mapBuild.bDislike
self._mapNode.btnLockIcon.interactable = self.bLock
NovaAPI.SetTMPText(self._mapNode.txtBuildLock, self.bLock and ConfigTable.GetUIText("RoguelikeBuild_Save_Lock") or ConfigTable.GetUIText("RoguelikeBuild_Save_Unlock"))
NovaAPI.SetTMPColor(self._mapNode.txtBuildLock, self.bLock and Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764) or Color(0.5803921568627451, 0.6666666666666666, 0.7529411764705882))
self:SetDisLikeBtn()
end
function StarTowerBuildSaveCtrl:SetDisLikeBtn()
self._mapNode.btn_DiscardIcon.interactable = self.bDislike
if self.bDislike then
NovaAPI.SetTMPText(self._mapNode.txtDiscard, ConfigTable.GetUIText("BuildDetail_Dislike2"))
NovaAPI.SetImageColor(self._mapNode.img_DiscardIcon, Color(1, 1, 1, 1))
else
NovaAPI.SetTMPText(self._mapNode.txtDiscard, ConfigTable.GetUIText("BuildDetail_Dislike1"))
NovaAPI.SetImageColor(self._mapNode.img_DiscardIcon, (self.bLock or self.bPreference) and Color(0.5803921568627451, 0.6666666666666666, 0.7529411764705882) or Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764))
end
NovaAPI.SetTMPColor(self._mapNode.txtDiscard, self.bDislike and Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764) or Color(0.5803921568627451, 0.6666666666666666, 0.7529411764705882))
end
function StarTowerBuildSaveCtrl:InitPanelDelete()
self._mapNode.goBuildContent:SetActive(false)
@@ -118,7 +144,7 @@ function StarTowerBuildSaveCtrl:OpenConfirmHint()
self:ClosePanel()
end)
end
PlayerData.Build:SaveBuild(self.mapBuild.nBuildId, true, self.bLock, self.bPreference, self.sName, callback)
PlayerData.Build:SaveBuild(self.mapBuild.nBuildId, true, self.bLock, self.bPreference, self.bDislike, self.sName, callback)
end
}
EventManager.Hit(EventId.OpenMessageBox, msg)
@@ -205,14 +231,34 @@ function StarTowerBuildSaveCtrl:OnBtnClick_Rename()
end
function StarTowerBuildSaveCtrl:OnBtnClick_Lock()
self.bLock = not self.bLock
if self.bLock then
self.bDislike = false
end
self:SetDisLikeBtn()
self._mapNode.btnLockIcon.interactable = self.bLock
NovaAPI.SetTMPText(self._mapNode.txtBuildLock, self.bLock and ConfigTable.GetUIText("RoguelikeBuild_Save_Lock") or ConfigTable.GetUIText("RoguelikeBuild_Save_Unlock"))
NovaAPI.SetTMPColor(self._mapNode.txtBuildLock, self.bLock and Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764) or Color(0.5803921568627451, 0.6666666666666666, 0.7529411764705882))
end
function StarTowerBuildSaveCtrl:OnBtnClick_Preference()
self.bPreference = not self.bPreference
if self.bPreference then
self.bDislike = false
self.bLock = true
end
self:SetDisLikeBtn()
self._mapNode.btnPreferenceIcon.interactable = self.bPreference
NovaAPI.SetTMPColor(self._mapNode.txtLike, self.bPreference and Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764) or Color(0.5803921568627451, 0.6666666666666666, 0.7529411764705882))
self._mapNode.btnLockIcon.interactable = self.bLock
NovaAPI.SetTMPText(self._mapNode.txtBuildLock, self.bLock and ConfigTable.GetUIText("RoguelikeBuild_Save_Lock") or ConfigTable.GetUIText("RoguelikeBuild_Save_Unlock"))
NovaAPI.SetTMPColor(self._mapNode.txtBuildLock, self.bLock and Color(0.14901960784313725, 0.25882352941176473, 0.47058823529411764) or Color(0.5803921568627451, 0.6666666666666666, 0.7529411764705882))
end
function StarTowerBuildSaveCtrl:OnBtnClick_Dislike(btn)
if self.bPreference or self.bLock then
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("Build_UnableDislike"))
return
end
self.bDislike = not self.bDislike
self:SetDisLikeBtn()
end
function StarTowerBuildSaveCtrl:OnBtnClick_Save(btn)
local callback = function()
@@ -225,7 +271,7 @@ function StarTowerBuildSaveCtrl:OnBtnClick_Save(btn)
}
EventManager.Hit(EventId.OpenMessageBox, msg)
end
PlayerData.Build:SaveBuild(self.mapBuild.nBuildId, false, self.bLock, self.bPreference, self.sName, callback)
PlayerData.Build:SaveBuild(self.mapBuild.nBuildId, false, self.bLock, self.bPreference, self.bDislike, self.sName, callback)
end
function StarTowerBuildSaveCtrl:OnBtnClick_Delete()
if self.bLock then