95 lines
2.6 KiB
Lua
95 lines
2.6 KiB
Lua
------------------------------------------------
|
|
--作者: 杨全福
|
|
--日期: 2020-09-09
|
|
--文件: JiWuDuiHuanData.lua
|
|
--模块: JiWuDuiHuanData
|
|
--描述: 集物兑换数据
|
|
------------------------------------------------
|
|
local BaseData = require("Logic.YYHD.YYHDBaseData")
|
|
local ItemData = require("Logic.YYHD.YYHDItemData")
|
|
|
|
local JiWuDuiHuanData = {
|
|
--消耗的物品ID
|
|
CostItemID = 0,
|
|
--商品列表
|
|
ItemList = nil,
|
|
|
|
--已购买次数
|
|
BuyCountTable = nil,
|
|
--消耗的物品Icon
|
|
CostItemIcon = 0,
|
|
--展示红点
|
|
ShowRedPoint = true,
|
|
}
|
|
|
|
function JiWuDuiHuanData:New(typeId)
|
|
local _n = Utils.DeepCopy(self)
|
|
local _mn = setmetatable(_n, {__index = BaseData:New(typeId)})
|
|
return _mn
|
|
end
|
|
|
|
--解析活动配置数据
|
|
function JiWuDuiHuanData:ParseSelfCfgData(jsonTable)
|
|
self.CostItemID = jsonTable.exChangeMaterialsId
|
|
self.ItemList = List:New()
|
|
for k, v in pairs(jsonTable.exChangeDataMap) do
|
|
self.ItemList:Add({
|
|
ID = tonumber(k),
|
|
Price = v.exChangePrice,
|
|
Times = v.exChangeTimes,
|
|
Item = ItemData:New(v.rewardData)
|
|
})
|
|
end
|
|
|
|
self.ItemList:Sort(function(a, b)
|
|
return a.ID < b.ID
|
|
end)
|
|
end
|
|
|
|
|
|
--解析活动玩家数据
|
|
function JiWuDuiHuanData:ParsePlayerData(jsonTable)
|
|
self.BuyCountTable = {}
|
|
for v, k in pairs(jsonTable.exChangeList) do
|
|
self.BuyCountTable[tonumber(v)] = k
|
|
end
|
|
end
|
|
|
|
--刷新数据
|
|
function JiWuDuiHuanData:RefreshData()
|
|
--检测红点
|
|
self:RemoveRedPoint()
|
|
if self.ShowRedPoint then
|
|
self:AddRedPoint(0, nil, nil, nil, true, nil)
|
|
end
|
|
local _minNeedCount = nil
|
|
for i = 1, #self.ItemList do
|
|
local _item = self.ItemList[i]
|
|
local _buyCount = self.BuyCountTable[_item.ID]
|
|
if _buyCount == nil then
|
|
_buyCount = 0
|
|
end
|
|
if _item.Times <= 0 or _buyCount < _item.Times then
|
|
if _minNeedCount == nil or _item.Price < _minNeedCount then
|
|
_minNeedCount = _item.Price
|
|
end
|
|
end
|
|
end
|
|
if _minNeedCount ~= nil then
|
|
self:AddRedPoint(1, {{self.CostItemID, _minNeedCount}}, nil, nil, nil, nil)
|
|
end
|
|
local _costCfg = DataConfig.DataItem[self.CostItemID]
|
|
self.CostItemIcon = _costCfg.Icon
|
|
end
|
|
--购买
|
|
function JiWuDuiHuanData:ReqBuy(id, count)
|
|
local _json = string.format("{\"exChange\":%d,\"num\":%d}", id, count)
|
|
GameCenter.Network.Send("MSG_Activity.ReqActivityDeal", {type = self.TypeId, data = _json})
|
|
end
|
|
|
|
--处理运营活动返回
|
|
function JiWuDuiHuanData:ResActivityDeal(jsonTable)
|
|
end
|
|
|
|
return JiWuDuiHuanData
|