local UIFairSoloTournamentKeyBoard = UIViewClass() function UIFairSoloTournamentKeyBoard:OnOpened(context) self.cacheNumStr = 0 self:InitCoinInfo() UIUtils.SetLabel(self.txt_BetRate, self.context.betRate) UIUtils.SetLabel(self.txt_Option, self.context.playerName) UIUtils.SetLabel(self.txt_Number, self.context.hasBetNum) UTL.Item.MoneyIcon(self.img_Item, self.guessCoinId) UTL.Item.MoneyIcon(self.img_PreGetItem, self.getCoinId) self:RefreshCount() end function UIFairSoloTournamentKeyBoard:InitCoinInfo() self.guessCoinId = DataSheetManager.ConstData:GetDataByID("FairTournamentSGuessCoin").IntValue self.getCoinId = DataSheetManager.ConstData:GetDataByID("FairTournamentStoreCoin").IntValue self.minNum = DataSheetManager.ConstData:GetDataByID("FairTournamentWinLoseGuessLowLmt").IntValue self.maxNum = DataSheetManager.ConstData:GetDataByID("FairTournamentWinLoseGuessUpLmt").IntValue end function UIFairSoloTournamentKeyBoard:OnBackButtonPressed() self:OnButtonClicked(self.TipWindow) end function UIFairSoloTournamentKeyBoard:StartBattleBetReq() MDL.FairSoloTournament.FairTournamentBattleBetReq(self.context.stageId, self.context.groupId, self.context.acid, tonumber(self.cacheNumStr)) end function UIFairSoloTournamentKeyBoard:OnButtonClicked(comp) if comp == self.TipWindow then self:CloseView() elseif comp == self.btn_Buy then local curNum = tonumber(self.cacheNumStr) local itemData = DataSheetManager.ItemData:GetDataByID(self.guessCoinId) local itemName = UIUtils.GetLocalizedTxt(Const_IDS[itemData.Name]) if curNum < self.minNum then CTL.Tips.AddTipsMsg(Const_IDS.IDS_HeroMatch1v1_MinMoney, self.minNum .. itemName) elseif curNum > self.maxNum then CTL.Tips.AddTipsMsg(Const_IDS.IDS_HeroMatch1v1_MaxMoney, self.maxNum .. itemName) else self:StartBattleBetReq() self:CloseView() end elseif comp == self.Button1 then self:ExcuteClickNum(1) elseif comp == self.Button2 then self:ExcuteClickNum(2) elseif comp == self.Button3 then self:ExcuteClickNum(3) elseif comp == self.Button4 then self:ExcuteClickNum(4) elseif comp == self.Button5 then self:ExcuteClickNum(5) elseif comp == self.Button6 then self:ExcuteClickNum(6) elseif comp == self.Button7 then self:ExcuteClickNum(7) elseif comp == self.Button8 then self:ExcuteClickNum(8) elseif comp == self.Button9 then self:ExcuteClickNum(9) elseif comp == self.Button10 then self:ExcuteClickNum(0) elseif comp == self.ButtonCancel then self:ExcuteClickNum(-1) elseif comp == self.ButtonConfirm then self:CloseView() elseif comp == self.event_Plus then if self.cacheNumStr + 1 <= self:GetAllowBetMaxNum() then self.cacheNumStr = self.cacheNumStr + 1 self:RefreshCount() end elseif comp == self.event_Minus then if self.cacheNumStr > 0 then self.cacheNumStr = self.cacheNumStr - 1 self:RefreshCount() end elseif comp == self.event_Max then --购买上限 self.cacheNumStr = self:GetAllowBetMaxNum() self:RefreshCount() end end --获取可押注的最大值 function UIFairSoloTournamentKeyBoard:GetAllowBetMaxNum() local hasBetNum = self.context.hasBetNum if hasBetNum >= self.maxNum then return 0 end local leftBetNum = self.maxNum - self.context.hasBetNum local curNum = UTL.Item.GetItemStockCount(self.guessCoinId) return math.min(leftBetNum, curNum) end function UIFairSoloTournamentKeyBoard:ExcuteClickNum(num) if num == -1 then local len = string.len(self.cacheNumStr) if len >= 2 then self.cacheNumStr = tonumber(utf8.sub(tostring(self.cacheNumStr), 1, len)) else self.cacheNumStr = 0 end elseif num == 0 and string.isNilOrEmpty(self.cacheNumStr) then return else local targetNum = tonumber(self.cacheNumStr .. num) local stockCount = self:GetAllowBetMaxNum() if targetNum > stockCount then self.cacheNumStr = stockCount else self.cacheNumStr = targetNum end end if tonumber(self.cacheNumStr) < 0 then self.cacheNumStr = 1 end self:RefreshCount() end function UIFairSoloTournamentKeyBoard:RefreshCount() UIUtils.SetLabel(self.txt_NumSelect, self.cacheNumStr) UIUtils.SetLabel(self.txt_PreGetNumber, math.ceil(tonumber(self.cacheNumStr + self.context.hasBetNum) * self.context.betRate)) end return UIFairSoloTournamentKeyBoard