---@class KLShapeShiftCardBuyPanel:UIKmlLuaPanelBase ---@field view KLShapeShiftCardBuyPanelView local KLShapeShiftCardBuyPanel = class(UIKmlLuaPanelBase) local this =KLShapeShiftCardBuyPanel function this:AsyncLoadUI() end ---创建时调用一次 function this:Init() ---@type cfg_card_shop_column self.itemInfo = self.args self.consumeCfg = tonumber(self.itemInfo.exchangeConsume[1]) self.consumeCost = tonumber(self.itemInfo.exchangeConsume[2]) EquipFunc.tipsHeight = 0 SL:OpenTips("mall", tonumber(self.itemInfo.exchangeAdd[1]),nil,nil,nil,{hideMask=true}) end ---注册UI事件和服务器消息 function this:RegistEvents() GUI:AddOnClickEvent(self.view.ClickMask, self, self.ClickMaskOnClick) GUI:AddOnClickEvent(self.view.BtnBuy, self, self.BtnBuyOnClick) GUI:Input_SetOnEndEdit(self.view.InputFieldLevel, self, self.InputFieldLevelOnEndEdit) GUI:AddOnClickEvent(self.view.BtnLevelAdd, self, self.BtnLevelAddOnClick) GUI:AddOnClickEvent(self.view.BtnLevelMinus, self, self.BtnLevelMinusOnClick) end ---界面显示时调用一次 function this:Show() end ---创建或者刷新界面数据时调用 function this:Refresh() GUI:Text_setString(self.view.InputFieldLevel, "1") self:RefreshTotalPrice() if EquipFunc.tipsHeight and EquipFunc.tipsHeight ~= 0 then self:UpdateHeight(EquipFunc.tipsHeight) end end function this:RefreshTotalPrice() local text = GUI:Text_getString(self.view.InputFieldLevel) local inputNum = tonumber(text) local totalPrice = self.consumeCost * inputNum GUI:Text_setString(self.view.TextTotalPrice, tostring(totalPrice)) local ownCount = SL:GetBagItemCount(self.consumeCfg) GUI:Text_setTextColor(self.view.TextTotalPrice,ownCount >= totalPrice and "#1add1f" or "#ff2323") GUI:Item_setItemId(self.view.item_tokens, self.consumeCfg) --GUI:Image_loadTexture(self.view.icon_money,tostring(self.consumeCfg),"Atlas/UIBagPanel.spriteatlas") end function this:BtnBuyOnClick() local coin = SL:GetBagItemCount(self.consumeCfg) local count = tonumber(GUI:Text_getString(self.view.InputFieldLevel)) if coin < self.consumeCost * count then SL:TipMessage( SL:GetConfig('cfg_string',269).text,1, NoticeType.NoticeMid )--货币不足 else SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_TRANSFER_CARD_EXCHANGE, { self.itemInfo.id, count }) self:ClickMaskOnClick() end end function this:InputFieldLevelOnEndEdit(_, _, eventData) local text = eventData[1] GUI:Text_setString(self.view.InputFieldLevel, tostring(text)) self:CheckInput() self:RefreshTotalPrice() end function this:BtnLevelAddOnClick() local inputNum = tonumber(GUI:Text_getString(self.view.InputFieldLevel)) GUI:Text_setString(self.view.InputFieldLevel, tostring(inputNum + 1)) self:CheckInput() self:RefreshTotalPrice() end function this:BtnLevelMinusOnClick() local inputNum = tonumber(GUI:Text_getString(self.view.InputFieldLevel)) inputNum = inputNum - 1 GUI:Text_setString(self.view.InputFieldLevel, tostring(inputNum)) self:CheckInput() self:RefreshTotalPrice() end function this:CheckInput() local inputStr = GUI:Text_getString(self.view.InputFieldLevel) local inputNum = tonumber(inputStr) if not inputNum then GUI:Text_setString(self.view.InputFieldLevel, "1") self:RefreshTotalPrice() return end local maxCount = 99 if inputNum >= maxCount then GUI:Text_setString(self.view.InputFieldLevel, tostring(maxCount)) self:RefreshTotalPrice() return end if inputNum <= 0 then GUI:Text_setString(self.view.InputFieldLevel, tostring(maxCount)) self:RefreshTotalPrice() return end end function this:UpdateHeight(bg_height) local add = (bg_height-156) / 2 GUI:setPositionY(self.view.root,add) end function this:ClickMaskOnClick() GUI:UIPanel_Close("dev/outui/ShapeShiftCard/Panel/KLShapeShiftCardBuy/KLShapeShiftCardBuyPanel") end function this:Close() SL:CloseTips() GUI:UIPanel_Close("dev/ui/Tips/Panel/KLIUItemTipsOther/KLIUItemTipsOtherPanel") end return this