Files
Main/Assets/GameAssets/Resources/Lua/Logic/YYHD/JiWuDuiHuan/JiWuDuiHuanData.lua
2025-01-25 04:38:09 +08:00

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