Files
StellaSora_DataLua/lua/game/ui/templateex/templatematctrl.lua
T
SL1900 5e0d58cfad Initial version - 1.2.0.60
EN: 1.2.0.60
CN: 1.2.0.61
JP: 1.2.0.63
KR: 1.2.0.67
2025-12-03 01:00:00 +09:00

76 lines
2.7 KiB
Lua

local TemplateMatCtrl = class("TemplateMatCtrl", BaseCtrl)
local _, Green = ColorUtility.TryParseHtmlString("#0ABEC5")
TemplateMatCtrl._mapNodeConfig = {
goItem = {
sCtrlName = "Game.UI.TemplateEx.TemplateItemCtrl"
},
txtCost = {sComponentName = "TMP_Text"},
rtSelect = {},
txtHas = {sComponentName = "TMP_Text"},
txtRequire = {sComponentName = "TMP_Text"},
goReduce = {},
imgMask = {}
}
TemplateMatCtrl._mapEventConfig = {}
function TemplateMatCtrl:SetEmpty(nItemId)
self._mapNode.goItem:SetItem(nItemId)
self._mapNode.rtSelect:SetActive(false)
self._mapNode.imgMask:SetActive(false)
self._mapNode.txtRequire.gameObject:SetActive(false)
end
function TemplateMatCtrl:SetMat(nItemId, nRequireCount, nCustomHas)
self.nHasCount = nCustomHas and nCustomHas or PlayerData.Item:GetItemCountByID(nItemId)
self.nItemId = nItemId
self:SetSelectCount()
if 0 == nItemId then
self:SetEmpty()
elseif nRequireCount then
self._mapNode.goItem:SetItem(nItemId)
self._mapNode.txtRequire.gameObject:SetActive(true)
self._mapNode.rtSelect:SetActive(false)
if self.nHasCount > 1000 then
local nFloor = math.floor(self.nHasCount / 100)
local nK = string.format("%.1f", nFloor / 10)
local sHas = nK .. "k"
NovaAPI.SetTMPText(self._mapNode.txtHas, sHas)
else
NovaAPI.SetTMPText(self._mapNode.txtHas, self.nHasCount)
end
NovaAPI.SetTMPColor(self._mapNode.txtHas, nRequireCount <= self.nHasCount and Green or Red_Unable)
if 1000 < nRequireCount then
local nFloor = math.floor(nRequireCount / 100)
local nK = string.format("%.1f", nFloor / 10)
local sRequire = nK .. "k"
NovaAPI.SetTMPText(self._mapNode.txtRequire, "/" .. sRequire)
else
NovaAPI.SetTMPText(self._mapNode.txtRequire, "/" .. nRequireCount)
end
self._mapNode.imgMask:SetActive(false)
else
self._mapNode.imgMask:SetActive(self.nHasCount <= 0)
self._mapNode.txtRequire.gameObject:SetActive(false)
self._mapNode.rtSelect:SetActive(true)
NovaAPI.SetTMPText(self._mapNode.txtCost, self.nHasCount)
self._mapNode.goItem:SetItem(nItemId)
end
end
function TemplateMatCtrl:SetSelectCount(nCount)
if nCount and 0 < nCount then
self._mapNode.goReduce:SetActive(true)
NovaAPI.SetTMPText(self._mapNode.txtCost, self.nHasCount - nCount)
NovaAPI.SetTMPColor(self._mapNode.txtCost, Blue_Normal)
self._mapNode.goItem:SetItem(self.nItemId, nil, nCount, nil, nil, nil, nil, true, true)
else
NovaAPI.SetTMPText(self._mapNode.txtCost, self.nHasCount)
self._mapNode.goReduce:SetActive(false)
self._mapNode.goItem:SetItem(self.nItemId)
end
end
function TemplateMatCtrl:SetSelect(flage)
if self.nItemId == 0 then
return
end
self._mapNode.goItem:SetMultiSelected_Blue(flage)
end
return TemplateMatCtrl