ro-table/Asstes/Resources/Script/FrameWork/GUI/cell/BoothIntroduceCell.txt
2025-06-04 05:02:57 +08:00

209 lines
6.1 KiB
Plaintext

local baseCell = autoImport("BaseCell")
BoothIntroduceCell = class("BoothIntroduceCell", baseCell)
function BoothIntroduceCell:Init()
self:FindObjs()
self:InitShow()
end
function BoothIntroduceCell:FindObjs()
self.rate = self:FindGO("Rate")
if self.rate then
self.rate = self.rate:GetComponent(UILabel)
end
self.countDown = self:FindGO("CountDown")
if self.countDown then
self.countDown = self.countDown:GetComponent(UILabel)
end
self.count = self:FindGO("Count")
if self.count then
self.count = self.count:GetComponent(UILabel)
end
self.buyerCount = self:FindGO("BuyerCount")
if self.buyerCount then
self.buyerCount = self.buyerCount:GetComponent(UILabel)
end
self.info = self:FindGO("Info")
if self.info then
self.info = self.info:GetComponent(UILabel)
end
self.info2 = self:FindGO("Info2")
if self.info2 then
self.info2 = self.info2:GetComponent(UILabel)
end
self.table = self:FindGO("Table")
if self.table then
self.table = self.table:GetComponent(UITable)
end
self.rate = self:FindGO("Rate")
if self.rate then
self.rate = self.rate:GetComponent(UILabel)
end
self.sendRoot = self:FindGO("SendRoot")
self.boothFrom = self:FindGO("BoothFrom")
if self.boothFrom then
self.boothFrom = self.boothFrom:GetComponent(UILabel)
end
self.boothTip = self:FindGO("BoothTip")
if self.boothTip then
self.boothTip = self.boothTip:GetComponent(UILabel)
end
self.tipQuota = self:FindGO("TipQuota")
self.quota = self:FindGO("Quota")
if self.quota then
self.quota = self.quota:GetComponent(UILabel)
end
end
function BoothIntroduceCell:InitShow()
if self.tipQuota then
local quotaIcon = self:FindGO("Icon", self.tipQuota):GetComponent(UISprite)
local quota = Table_Item[GameConfig.Booth.quota_itemid]
if quota ~= nil then
IconManager:SetItemIcon(quota.Icon, quotaIcon)
end
end
end
function BoothIntroduceCell:SetData(data)
self.data = data
if data then
if self.rate then
self.rate.text = string.format(ZhString.ShopMall_ExchangeRateTitle, CommonFun.calcTradeTax(data:GetPrice()))
end
local itemid = data:GetItemId()
local statetype = data.type
if statetype == ShopMallStateTypeEnum.WillPublicity then
local item = Table_Item[itemid]
if item ~= nil then
if self.info then
local sb = LuaStringBuilder.CreateAsTable()
sb:AppendLine(string.format(ZhString.Booth_IntroduceWillPublicity, item.NameZh))
sb:AppendLine(ZhString.Booth_IntroducePublicityTip)
sb:AppendLine(ZhString.Booth_IntroduceSendTip)
sb:Append(self:GetPublicityTip())
self.info.text = sb:ToString()
sb:Destroy()
end
local exchange = Table_Exchange[itemid]
local showTime = 0
if exchange ~= nil then
showTime = exchange.ShowTime
end
if self.info2 then
self.info2.text = string.format(ZhString.Booth_IntroducePublicityTime, item.NameZh, math.ceil(showTime/60))
end
end
elseif statetype == ShopMallStateTypeEnum.InPublicity then
if self.timeTick == nil then
self.timeTick = TimeTickManager.Me():CreateTick(0, 1000, self.UpdateCountDown, self)
end
if self.count then
self.count.text = string.format(ZhString.Booth_IntroduceCount, data.count)
end
self:UpdateBuyerCount()
if self.info then
local item = Table_Item[itemid]
if item ~= nil then
local sb = LuaStringBuilder.CreateAsTable()
sb:AppendLine(string.format(ZhString.Booth_IntroducePublicity, item.NameZh))
sb:AppendLine(ZhString.Booth_IntroducePublicityTip)
sb:AppendLine(ZhString.Booth_IntroduceSendTip)
sb:Append(self:GetPublicityTip())
self.info.text = sb:ToString()
sb:Destroy()
end
end
else
if self.count then
self.count.text = string.format(ZhString.Booth_IntroduceCount, data.count)
end
if self.boothTip then
local sb = LuaStringBuilder.CreateAsTable()
sb:AppendLine(ZhString.Booth_IntroduceSendTip)
sb:Append(self:GetPublicityTip())
self.boothTip.text = sb:ToString()
sb:Destroy()
end
end
if self.sendRoot then
self.sendRoot:SetActive(false)
end
if self.boothFrom then
self.boothFrom.text = string.format(ZhString.Booth_IntroduceFrom, data.boothName)
end
local exchangeType = data.exchangeType
if exchangeType == ShopMallExchangeSellEnum.Sell then
self:ShowQuotaTip(true)
elseif exchangeType == ShopMallExchangeSellEnum.Cancel then
self:ShowQuotaTip(false)
elseif exchangeType == ShopMallExchangeSellEnum.Resell then
self:ShowQuotaTip(true)
end
if self.table then
self.table:Reposition()
end
end
end
function BoothIntroduceCell:UpdateCountDown()
if self.data.endTime then
local time = self.data.endTime - ServerTime.CurServerTime()/1000
local min,sec
if time > 0 then
min,sec = ClientTimeUtil.GetFormatSecTimeStr(time)
else
min = 0
sec = 0
end
self.countDown.text = string.format(ZhString.ShopMall_ExchangePublicityCountDown, min, sec)
end
end
function BoothIntroduceCell:UpdateQuota(price, count)
if self.quota then
local statetype = self.data.type
local publicityId = (statetype == ShopMallStateTypeEnum.WillPublicity or statetype == ShopMallStateTypeEnum.InPublicity) and 1 or 0
local quota = BoothProxy.Instance:GetQuota(price * count, publicityId)
if quota ~= nil then
self.quota.text = StringUtil.NumThousandFormat(quota)
end
end
end
function BoothIntroduceCell:UpdateBuyerCount()
if self.buyerCount then
self.buyerCount.text = string.format(ZhString.Booth_IntroduceBuyerCount, self.data.buyerCount)
end
end
function BoothIntroduceCell:GetPublicityTip()
local exchangeType = self.data.exchangeType
local _ShopMallExchangeSellEnum = ShopMallExchangeSellEnum
if exchangeType == _ShopMallExchangeSellEnum.Sell or exchangeType == _ShopMallExchangeSellEnum.Cancel
or exchangeType == _ShopMallExchangeSellEnum.Resell then
return ZhString.Booth_IntroducePublicitySellTip
else
return string.format(ZhString.Booth_IntroduceBuyTip, (1 / GameConfig.Booth.quota_zeny_discount) * 100)
end
end
function BoothIntroduceCell:ShowQuotaTip(isShow)
if self.tipQuota then
self.tipQuota:SetActive(isShow)
end
end
function BoothIntroduceCell:OnDestroy()
if self.timeTick ~= nil then
TimeTickManager.Me():ClearTick(self)
self.timeTick = nil
end
end