188 lines
4.5 KiB
Plaintext
188 lines
4.5 KiB
Plaintext
autoImport("LotteryView")
|
|
autoImport("LotteryDetailCombineCell")
|
|
autoImport("LotteryRecoverCombineCell")
|
|
|
|
LotteryCardView = class("LotteryCardView", LotteryView)
|
|
|
|
LotteryCardView.ViewType = LotteryView.ViewType
|
|
|
|
local wrapConfig = {}
|
|
|
|
function LotteryCardView:OnExit()
|
|
if self.rateSb ~= nil then
|
|
self.rateSb:Destroy()
|
|
self.rateSb = nil
|
|
end
|
|
LotteryCardView.super.OnExit(self)
|
|
end
|
|
|
|
function LotteryCardView:FindObjs()
|
|
LotteryCardView.super.FindObjs(self)
|
|
|
|
self.filter = self:FindGO("Filter"):GetComponent(UIPopupList)
|
|
|
|
self.ticket = self:FindGO("Ticket"):GetComponent(UILabel)
|
|
self.ticketCost = self:FindGO("TicketCost"):GetComponent(UILabel)
|
|
end
|
|
|
|
function LotteryCardView:AddEvts()
|
|
LotteryCardView.super.AddEvts(self)
|
|
|
|
local ticketBtn = self:FindGO("TicketBtn")
|
|
self:AddClickEvent(ticketBtn, function ()
|
|
self:Ticket()
|
|
end)
|
|
|
|
EventDelegate.Add(self.filter.onChange, function()
|
|
if self.filter.data == nil then
|
|
return
|
|
end
|
|
if self.filterData ~= self.filter.data then
|
|
self.filterData = self.filter.data
|
|
|
|
self:ResetCard()
|
|
end
|
|
end)
|
|
|
|
local help = self:FindGO("HelpButton")
|
|
self:AddClickEvent(help, function ()
|
|
ServiceItemProxy.Instance:CallLotteryRateQueryCmd(self.lotteryType)
|
|
end)
|
|
|
|
self:UpdateTicketCost()
|
|
end
|
|
|
|
function LotteryCardView:AddViewEvts()
|
|
LotteryCardView.super.AddViewEvts(self)
|
|
|
|
self:AddListenEvt(ItemEvent.ItemUpdate, self.HandleItemUpdate)--新增
|
|
self:AddListenEvt(ServiceEvent.ItemLotteryRateQueryCmd, self.HandleLotteryRateQuery)
|
|
end
|
|
|
|
function LotteryCardView:InitShow()
|
|
LotteryCardView.super.InitShow(self)
|
|
|
|
self.lotteryType = LotteryType.Card
|
|
|
|
local detailContainer = self:FindGO("DetailContainer")
|
|
TableUtility.TableClear(wrapConfig)
|
|
wrapConfig.wrapObj = detailContainer
|
|
wrapConfig.pfbNum = 6
|
|
wrapConfig.cellName = "LotteryDetailCombineCell"
|
|
wrapConfig.control = LotteryDetailCombineCell
|
|
wrapConfig.dir = 1
|
|
self.detailHelper = WrapCellHelper.new(wrapConfig)
|
|
self.detailHelper:AddEventListener(MouseEvent.MouseClick, self.ClickDetail, self)
|
|
|
|
self:InitFilter()
|
|
self:InitView()
|
|
|
|
self:InitTicket()
|
|
self:UpdateTicket()
|
|
self:UpdateTicketCost()
|
|
end
|
|
|
|
function LotteryCardView:InitView()
|
|
LotteryCardView.super.InitView(self)
|
|
|
|
self:UpdateCost()
|
|
self:UpdateCard()
|
|
end
|
|
|
|
function LotteryCardView:Ticket()
|
|
self:CallTicket()
|
|
end
|
|
|
|
|
|
function LotteryCardView:UpdateSkip()
|
|
local isShow = FunctionFirstTime.me:IsFirstTime(FunctionFirstTime.LotteryCard)
|
|
self.skipBtn.gameObject:SetActive(not isShow)
|
|
end
|
|
|
|
function LotteryCardView:InitFilter()
|
|
self.filter:Clear()
|
|
|
|
local randomFilter = GameConfig.CardMake.RandomFilter
|
|
local rangeList = CardMakeProxy.Instance:GetFilter(randomFilter)
|
|
for i=1,#rangeList do
|
|
local rangeData = randomFilter[rangeList[i]]
|
|
self.filter:AddItem(rangeData , rangeList[i])
|
|
end
|
|
if #rangeList > 0 then
|
|
local range = rangeList[1]
|
|
self.filterData = range
|
|
local rangeData = randomFilter[range]
|
|
self.filter.value = rangeData
|
|
end
|
|
end
|
|
|
|
function LotteryCardView:ResetCard()
|
|
self:UpdateCard()
|
|
self.detailHelper:ResetPosition()
|
|
end
|
|
|
|
function LotteryCardView:UpdateCard()
|
|
local list = LotteryProxy.Instance:FilterCard(self.filterData)
|
|
if list then
|
|
local newData = self:ReUniteCellData(list, 3)
|
|
self.detailHelper:UpdateInfo(newData)
|
|
end
|
|
end
|
|
|
|
function LotteryCardView:Lottery()
|
|
local data = LotteryProxy.Instance:GetInfo(self.lotteryType)
|
|
if data then
|
|
self:CallLottery(data.price, nil, nil, 1)
|
|
end
|
|
end
|
|
|
|
function LotteryCardView:LotteryTen()
|
|
local data = LotteryProxy.Instance:GetInfo(self.lotteryType)
|
|
if data then
|
|
self:CallLottery(data.price, nil, nil, 10)
|
|
end
|
|
end
|
|
|
|
|
|
function LotteryCardView:HandleItemUpdate(note)
|
|
self:UpdateTicket()
|
|
|
|
if self.isShowRecover then
|
|
self:UpdateRecover()
|
|
else
|
|
self.isUpdateRecover = true
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
function LotteryCardView:HandleLotteryRateQuery(note)
|
|
local data = note.body
|
|
if data and data.type == self.lotteryType then
|
|
if self.rateSb == nil then
|
|
self.rateSb = LuaStringBuilder.CreateAsTable()
|
|
else
|
|
self.rateSb:Clear()
|
|
end
|
|
|
|
self.rateSb:AppendLine(ZhString.Lottery_RateUrl)
|
|
|
|
local _ItemType = GameConfig.Lottery.ItemType
|
|
local _rateTip = ZhString.Lottery_RateTip
|
|
|
|
local leftRate = 100;
|
|
for i=1,#data.infos do
|
|
local info = data.infos[i]
|
|
if info.rate ~= 0 then
|
|
local name = _ItemType[info.type] or ""
|
|
self.rateSb:Append(name)
|
|
self.rateSb:AppendLine(string.format(_rateTip, info.rate / 10000))
|
|
leftRate = leftRate - info.rate / 10000;
|
|
end
|
|
end
|
|
-- self.rateSb:AppendLine(ZhString.Lottery_Left .. string.format(_rateTip, leftRate))
|
|
|
|
TipsView.Me():ShowGeneralHelp(self.rateSb:ToString(), "")
|
|
end
|
|
end |