2025-06-04 05:02:57 +08:00

125 lines
3.6 KiB
Plaintext

autoImport("WeddingBuyDescCell")
local baseCell = autoImport("BaseCell")
WeddingBuyCell = class("WeddingBuyCell", baseCell)
local _weddingActivity = GameConfig.Activity.WeddingService
function WeddingBuyCell:Init()
self:FindObjs()
self:InitCell()
end
function WeddingBuyCell:FindObjs()
self.title = self:FindGO("Title"):GetComponent(UILabel)
self.buyBtn = self:FindGO("BuyBtn"):GetComponent(UIMultiSprite)
self.icon = self:FindGO("Icon"):GetComponent(UISprite)
self.price = self:FindGO("Price"):GetComponent(UILabel)
self.purchased = self:FindGO("Purchased")
self.table = self:FindGO("Table"):GetComponent(UITable)
self.background = self:FindGO("Background"):GetComponent(UITexture)
self.discountTip = self:FindGO("DiscountTip")
self.discountTip_Sp = self.discountTip:GetComponent(UISprite)
self.discountTip_Label = self:FindComponent("Label", UILabel, self.discountTip)
self.primeCost = self:FindGO("primeCost"):GetComponent(UILabel)
end
function WeddingBuyCell:InitCell()
self.ctrl = UIGridListCtrl.new(self.table, WeddingBuyDescCell, "WeddingBuyDescCell")
self:AddClickEvent(self.buyBtn.gameObject,function ()
self:PassEvent(WeddingEvent.Buy, self)
end)
end
function WeddingBuyCell:SetData(data)
self:UnLoadPic()
self.data = data
self.gameObject:SetActive(data ~= nil)
if data then
local staticData = Table_Item[data.id]
if staticData ~= nil then
self.title.text = staticData.NameZh
end
self.ctrl:ResetDatas(data:GetDescList())
self.table:Reposition()
if data.isPurchased then
self.purchased:SetActive(true)
self.buyBtn.CurrentState = 1
self.icon.gameObject:SetActive(false)
else
self.purchased:SetActive(false)
self.buyBtn.CurrentState = 0
self.icon.gameObject:SetActive(true)
local price = data:GetPrice()
if price ~= nil then
local money = Table_Item[price.id]
if money ~= nil then
IconManager:SetItemIcon(money.Icon, self.icon)
end
local discount = WeddingProxy.Instance:GetDiscountByID(data.id)
redlog("dataid discount",data.id,discount)
if discount then
self:SetDisCountTip(true, discount/100)
self.price.text = StringUtil.NumThousandFormat(price.num*discount/10000)
self.primeCost.text = StringUtil.NumThousandFormat(price.num)
self:Show(self.primeCost.gameObject)
else
self.price.text = StringUtil.NumThousandFormat(price.num)
self:Hide(self.primeCost.gameObject)
self:SetDisCountTip(false)
end
end
end
local serviceData = Table_WeddingService[data.id]
if serviceData ~= nil then
PictureManager.Instance:SetWedding(serviceData.Background, self.background)
end
end
end
function WeddingBuyCell:UnLoadPic()
if self.data then
local serviceData = Table_WeddingService[self.data.id]
if serviceData ~= nil then
PictureManager.Instance:UnLoadWedding(serviceData.Background, self.background)
end
end
end
function WeddingBuyCell:SetDisCountTip(b, pct)
if(self.discountTip)then
if(b)then
self.discountTip:SetActive(true)
self.discountTip_Label.text = pct .. "%"
local spname, labelColor = self:GetDiscountUIConfig(pct)
self.discountTip_Sp.spriteName = spname
self.discountTip_Label.effectColor = labelColor or ColorUtil.NGUIBlack
else
self.discountTip:SetActive(false)
end
end
end
function WeddingBuyCell:GetDiscountUIConfig(pct)
if(pct > 0 and pct <= 20)then
return "shop_icon_sale20%", ColorUtil.DiscountLabel_Green
elseif(pct > 20 and pct <= 30)then
return "shop_icon_sale30%", ColorUtil.DiscountLabel_Blue
elseif(pct > 30 and pct <= 50)then
return "shop_icon_sale50%", ColorUtil.DiscountLabel_Purple
elseif(pct > 50 and pct <= 100)then
return "shop_icon_sale70%", ColorUtil.DiscountLabel_Yellow
end
end