| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- local CollectionBookData = class("CardHandBook", require("DataBase"))
- local BitUtil = require("BitUtil")
- function CollectionBookData:ctor()
- self.data = {}
- if not self.data.qualityCardDatas then
- self.data.qualityCardDatas = {}
- end
- if not self.data.handBookMaps then
- self.data.handBookMaps = {}
- end
- if not self.data.handBookQualityCounts then
- self.data.handBookQualityCounts = {}
- end
- end
- function CollectionBookData:InitDatas(data)
- self:RefreshDatas(data)
- end
- function CollectionBookData:RefreshDatas(data)
- for _,v in pairs(data) do
- if self.data.qualityCardDatas[v.card_quality] == nil then
- self.data.qualityCardDatas[v.card_quality] = {}
- end
- for _,v1 in pairs(v.card_book) do
- local data1 = ProtocalDataNormal.ParseCardHandBook(v1)
- self.data.handBookMaps[data1.cardId] = data1
- self.data.qualityCardDatas[v.card_quality][data1.cardId] = data1
- end
- end
- local rpState = false
- for k,v in pairs(self.data.qualityCardDatas) do
- local hasCount = 0
- local count = 0
- for _,v1 in pairs(v) do
- hasCount = hasCount + 1
- for i = 1,v1.cardLevel do
- local rewarded = BitUtil.RshiftNumBandOne(v1.rewardRec, i - 1) == 1
- if not rewarded then
- count = count + 1
- break
- end
- end
- end
- if not rpState and count > 0 then
- rpState = true
- end
- self.data.handBookQualityCounts[k] = hasCount
- end
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.RED_POINT_MGR_NOTICE, Enum.RPNotifyType.CardCollect, rpState)
- end
- function CollectionBookData:QueryCardHandBook(pageId)
- self.data.queryPageId = pageId
- ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_CARD_COLLECT_INFO_REQ, {})
- end
- function CollectionBookData:SendCardHandBookReward(id, lv,isGetAll)
- if isGetAll == nil then
- isGetAll = false
- end
- ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_CARD_COLLECT_REWARD_REQ, {card_id = id, level = lv,get_all = isGetAll})
- end
- function CollectionBookData:QueryCardRank(id)
- ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_CARD_COLLECTION_RANK_REQ, {card_id = id})
- end
- function CollectionBookData:GetCardHandBookQualityCountById(id)
- return self.data.handBookQualityCounts[id] or 0
- end
- function CollectionBookData:GetCollectionBookDataById(id)
- return self.data.handBookMaps[id]
- end
- function CollectionBookData:RegisterNetEvents()
- ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_CARD_COLLECT_INFO_ACK, function(data)
- if data.error == Enum.NetErrorCode.ERROR_OK then
- self:InitDatas(data.card_collect)
- if self.data.queryPageId == Enum.UIPageName.UIMainCity1 then
- self.data.queryPageId = nil
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UICardHandBook, nil, Enum.UIPageName.UIMainCity1)
- end
- end
- end)
- ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_CARD_COLLECT_CHANGE_NTF, function(data)
- self:RefreshDatas(data.card_collect)
- end)
- ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_CARD_COLLECT_REWARD_ACK, function(data)
- if data.error == Enum.NetErrorCode.ERROR_OK then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.CARD_HANDBOOK_REWARD_REFRESH, data.card_id)
- CommonUtil.ACKShowRewardList(data.reward_list)
- end
- end)
- ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_CARD_COLLECTION_RANK_ACK, function(data)
- if data.error == Enum.NetErrorCode.ERROR_OK then
- if data.player_info then
- ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.CARD_HANDBOOK_RANK_REFRESH, data.player_info, data.achievement_time)
- end
- end
- end)
- end
- function CollectionBookData:Clear()
- self.data = {}
- self.data.qualityCardDatas = {}
- self.data.handBookMaps = {}
- self.data.handBookQualityCounts = {}
- end
- function CollectionBookData:Destroy()
- if self.Clear then
- self:Clear()
- end
- self:UnRegisterNetEvents()
- end
- function CollectionBookData:UnRegisterNetEvents()
- end
- return CollectionBookData
|