123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- ---@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
|