local BaseCell = autoImport("BaseCell"); CardNCell = class("CardNCell", BaseCell) autoImport("TipLabelCell"); function CardNCell:Init() self.iconContainer = self:FindGO("IconContainer"); self.infoBord = self:FindGO("Info"); self.icon = self:FindComponent("Icon", UISprite,self.iconContainer); self.iconPic = self:FindComponent("IconTex", UITexture); self.useSymbol = self:FindGO("UseSymbol"); self.cardName = self:FindComponent("CardName", UILabel); local cellObj = self:FindGO("TipLabelCell"); self.tiplabelCell = TipLabelCell.new(cellObj); self:AddClickEvent(self.gameObject, function (go) self:SetChooseState(not self.use); end); self.useButton = self:FindComponent("UseButton", UIButton); self:AddClickEvent(self.useButton.gameObject, function (go) self:PassEvent(MouseEvent.MouseClick, self); end); end function CardNCell:SetData(data) self.data = data; if(data and data.cardInfo)then self.gameObject:SetActive(true); local cardInfo = data.cardInfo; if(not PictureManager.Instance:SetCard(cardInfo.Picture, self.iconPic))then printRed(string.format("為找到名為%s的卡片資源。", cardInfo.Picture)); PictureManager.Instance:SetCard("card_10001", self.iconPic) end self.cardName.text = cardInfo.Name; local contextlabel = {}; contextlabel.label = {}; contextlabel.hideline = true; local bufferIds = cardInfo.BuffEffect.buff; if(bufferIds)then for i=1,#bufferIds do local str = ItemUtil.getBufferDescById(bufferIds[i]); local bufferStrs = string.split(str, "\n") for j=1,#bufferStrs do table.insert(contextlabel.label, bufferStrs[j]); end end end self.tiplabelCell:SetData(contextlabel); self:SetUse(data.used == true); self:SetChooseState(false); else self.tiplabelCell:SetData(); self.gameObject:SetActive(false); end end function CardNCell:SetUse(b) self.useButton.isEnabled = not b; self.useSymbol:SetActive(b); end function CardNCell:SetChooseState(use) if(self:ObjIsNil(self.infoBord))then return; end self.infoBord:SetActive(use); self.iconContainer:SetActive(not use); self.use = use; end