forked from endernon/PGRData
285 lines
No EOL
8.8 KiB
Lua
285 lines
No EOL
8.8 KiB
Lua
local tableInsert = table.insert
|
|
local tableSort = table.sort
|
|
|
|
XItemConfigs = XItemConfigs or {}
|
|
|
|
local XItemTemplate = require("XEntity/XItem/XItemTemplate")
|
|
local XCharacterExpTemplate = require("XEntity/XItem/XCharacterExpTemplate")
|
|
local XEquipExpTemplate = require("XEntity/XItem/XEquipExpTemplate")
|
|
local XGiftTemplate = require("XEntity/XItem/XGiftTemplate")
|
|
local XPartnerExpTemplate = require("XEntity/XItem/XPartnerExpTemplate")
|
|
|
|
local TABLE_ITEM_PATH = "Share/Item/Item.tab"
|
|
local TABLE_BUY_ASSET_PATH = "Share/Item/BuyAsset.tab"
|
|
local TABLE_BUY_ASSET_CONFIG_PATH = "Share/Item/BuyAssetConfig.tab"
|
|
local TABLE_UI_BUY_ASSET_PATH = "Share/Item/UiBuyAsset.tab"
|
|
local TABLE_ITEM_COLLECTION_PATH = "Share/ItemCollection/ItemCollection.tab"
|
|
|
|
local BuyAssetTemplates = {} -- 购买资源配置表
|
|
local BuyAssetDailyLimit = {} -- 购买资源每日限制
|
|
local ItemTemplates = {}
|
|
local BuyAssetType = {} --购买资源的类型
|
|
local BuyAssetCanMutiply = {} --是否可以批量购买
|
|
local BuyAssetAutoClose = {}
|
|
local BuyAssetUis = {} -- 可以开启快捷购买的上一级Ui名
|
|
local BuyAssetTotalLimit = {} -- 最大购买数量限制
|
|
local BuyAssetTimeId = {} -- 购买时间限制
|
|
-- local BuyAssetDiscountShow = {} -- 购买打折展示
|
|
local ItemCollectionTemplates = {} -- 道具收藏配置表
|
|
local ItemCollectionDefaultCollect = {} -- 默认解锁收藏道具
|
|
|
|
XItemConfigs.SuitAllType = {
|
|
DefaultAll = 0,
|
|
All = 1,
|
|
}
|
|
|
|
XItemConfigs.Quality = {
|
|
One = 1,
|
|
Two = 2,
|
|
Three = 3,
|
|
Four = 4,
|
|
Five = 5,
|
|
Six = 6,
|
|
}
|
|
|
|
XItemConfigs.FastTrading = {
|
|
NotFastTrading = 0,
|
|
CanFastTrading = 1,
|
|
}
|
|
|
|
XItemConfigs.ItemType = {
|
|
Assert = 1 << 0, -- 资源
|
|
Money = 1 << 1 | 1 << 0, -- 货币,包括金币和钻石
|
|
Material = 1 << 2, -- 材料
|
|
Fragment = 1 << 3, -- 碎片
|
|
Gift = 1 << 4, -- 礼包
|
|
WeaponFashion = 1 << 5, -- 武器时装增加时限道具
|
|
DlcMaterial = 1 << 6, -- DlcHunt相关
|
|
CardExp = 1 << 11 | 1 << 2, -- 卡牌exp
|
|
EquipExp = 1 << 12 | 1 << 2, -- 装备exp 4100
|
|
EquipExpNotInBag = 1 << 12 | 1 << 3, -- 装备exp(不显示在背包中) 4104
|
|
EquipResonanace = 1 << 13 | 1 << 2, -- 装备共鸣道具
|
|
FurnitureItem = 1 << 14 | 1 << 2, -- 家具图纸
|
|
|
|
|
|
ExchangeMoney = 1 << 16 | 1 << 2, -- 兑换货币
|
|
SpExchangeMoney = 1 << 17 | 1 << 2, -- 特殊兑换货币
|
|
UnShow = 1 << 18 | 1 << 2, -- 不显示物品
|
|
FavorGift = 1 << 19 | 1 << 2, -- 好感度礼物
|
|
ActiveMoney = 1 << 20 | 1 << 2, -- 活动货币
|
|
PlayingMoney = 1 << 21 | 1 << 2, -- 玩法货币
|
|
PlayingItem = 1 << 22 | 1 << 2, -- 玩法系统道具
|
|
TRPGItem = 1 << 23 | 1 << 2, --跑图系统道具
|
|
PartnerExp = 1 << 25 | 1 << 2, -- 宠物exp
|
|
DlcItem = 1 << 6 | 1 << 0, -- Dlc道具
|
|
|
|
}
|
|
|
|
-- 背包显示的材料
|
|
XItemConfigs.Materials = {
|
|
XItemConfigs.ItemType.Gift,
|
|
XItemConfigs.ItemType.CardExp,
|
|
XItemConfigs.ItemType.EquipExp,
|
|
XItemConfigs.ItemType.Material,
|
|
XItemConfigs.ItemType.EquipResonanace,
|
|
XItemConfigs.ItemType.ExchangeMoney,
|
|
XItemConfigs.ItemType.SpExchangeMoney,
|
|
XItemConfigs.ItemType.FavorGift,
|
|
XItemConfigs.ItemType.ActiveMoney,
|
|
XItemConfigs.ItemType.PlayingItem,
|
|
XItemConfigs.ItemType.PartnerExp,
|
|
}
|
|
|
|
--背包页签类型
|
|
XItemConfigs.PageType = {
|
|
Equip = 1, --武器
|
|
SuitCover = 2, --意识套装封面
|
|
Material = 3, --材料
|
|
Fragment = 4, --碎片
|
|
Awareness = 5, --意识
|
|
Partner = 6, --伙伴
|
|
}
|
|
|
|
--收藏道具类型
|
|
XItemConfigs.ItemCollectionType = {
|
|
--默认收藏
|
|
DefaultCollect = 1,
|
|
|
|
--奖励收藏
|
|
RewardCollect = 2,
|
|
}
|
|
|
|
function XItemConfigs.Init()
|
|
local itemTable = XTableManager.ReadByIntKey(TABLE_ITEM_PATH, XTable.XTableItem, "Id")
|
|
|
|
for k, item in pairs(itemTable) do
|
|
local template = XItemTemplate.New(item)
|
|
|
|
if item.ItemType == XItemConfigs.ItemType.CardExp then
|
|
template = XCharacterExpTemplate.New(template)
|
|
elseif item.ItemType == XItemConfigs.ItemType.EquipExp
|
|
or item.ItemType == XItemConfigs.ItemType.EquipExpNotInBag then
|
|
template = XEquipExpTemplate.New(template)
|
|
elseif item.ItemType == XItemConfigs.ItemType.Gift then
|
|
template = XGiftTemplate.New(template)
|
|
elseif item.ItemType == XItemConfigs.ItemType.PartnerExp then
|
|
template = XPartnerExpTemplate.New(template)
|
|
end
|
|
|
|
ItemTemplates[k] = template
|
|
end
|
|
|
|
local bATemplates = XTableManager.ReadByIntKey(TABLE_BUY_ASSET_PATH, XTable.XTableBuyAsset, "Id")
|
|
local bACTemplates = XTableManager.ReadByIntKey(TABLE_BUY_ASSET_CONFIG_PATH, XTable.XTableBuyAssetConfig, "Id")
|
|
BuyAssetUis = XTableManager.ReadByIntKey(TABLE_UI_BUY_ASSET_PATH, XTable.XTableUiBuyAsset, "Id")
|
|
|
|
for id, tab in pairs(bATemplates) do
|
|
BuyAssetDailyLimit[id] = tab.DailyLimit
|
|
BuyAssetType[id] = tab.ExchangeType
|
|
BuyAssetCanMutiply[id] = tab.CanMutiply
|
|
BuyAssetAutoClose[id] = tab.AutoClose
|
|
BuyAssetTotalLimit[id] = tab.TotalLimit
|
|
BuyAssetTimeId[id] = tab.TimeId
|
|
-- BuyAssetDiscountShow[id] = tab.DiscountShow
|
|
|
|
local configs = {}
|
|
for _, config in pairs(tab.Config) do
|
|
local buyConfig = bACTemplates[config]
|
|
if not buyConfig then
|
|
XLog.ErrorTableDataNotFound("XItemConfigs.Init", "BuyAssetConfig",
|
|
TABLE_BUY_ASSET_CONFIG_PATH, "Id", tostring(config) .. "来自关联表" .. TABLE_BUY_ASSET_PATH .. "Id :" .. tostring(id) .. " 的Config")
|
|
return
|
|
end
|
|
|
|
for _, consume in pairs(buyConfig.ConsumeId) do
|
|
if not ItemTemplates[consume] then
|
|
local tmpStr = tostring(buyConfig.ConsumeId) .. "来自关联表" .. TABLE_BUY_ASSET_CONFIG_PATH .. "Id :" .. tostring(consume) .. " 的ConsumeId"
|
|
XLog.ErrorTableDataNotFound("XItemConfigs.Init", "Item", TABLE_ITEM_PATH, "Id", tmpStr)
|
|
return
|
|
end
|
|
end
|
|
|
|
tableInsert(configs, bACTemplates[config])
|
|
end
|
|
|
|
tableSort(configs, function(a, b)
|
|
return a.Times < b.Times
|
|
end)
|
|
|
|
BuyAssetTemplates[id] = configs
|
|
end
|
|
|
|
ItemCollectionDefaultCollect = {}
|
|
ItemCollectionTemplates = XTableManager.ReadByIntKey(TABLE_ITEM_COLLECTION_PATH, XTable.XTableItemCollection, "Id")
|
|
for id, template in pairs(ItemCollectionTemplates) do
|
|
if template.Type == XItemConfigs.ItemCollectionType.DefaultCollect then
|
|
tableInsert(ItemCollectionDefaultCollect, id)
|
|
end
|
|
end
|
|
end
|
|
|
|
function XItemConfigs.GetItemTemplatePath()
|
|
return TABLE_ITEM_PATH
|
|
end
|
|
|
|
function XItemConfigs.GetItemTemplates()
|
|
return ItemTemplates
|
|
end
|
|
|
|
function XItemConfigs.GetBuyAssetDailyLimit()
|
|
return BuyAssetDailyLimit
|
|
end
|
|
|
|
function XItemConfigs.GetBuyAssetTemplates()
|
|
return BuyAssetTemplates
|
|
end
|
|
|
|
function XItemConfigs.GetBuyAssetTemplateById(id)
|
|
return BuyAssetTemplates[id]
|
|
end
|
|
|
|
function XItemConfigs.GetBuyAssetType(id)
|
|
return BuyAssetType[id]
|
|
end
|
|
|
|
function XItemConfigs.GetBuyAssetCanMutiply(id)
|
|
return BuyAssetCanMutiply[id]
|
|
end
|
|
|
|
function XItemConfigs.GetBuyAssetLimit(id)
|
|
return BuyAssetDailyLimit[id]
|
|
end
|
|
|
|
function XItemConfigs.GetBuyAssetAutoClose(id)
|
|
return BuyAssetAutoClose[id]
|
|
end
|
|
|
|
function XItemConfigs.GetFastTrading(id)
|
|
if not ItemTemplates[id] then
|
|
return nil
|
|
end
|
|
|
|
return ItemTemplates[id].FastTrading
|
|
end
|
|
|
|
function XItemConfigs.GetUiBuyAsset()
|
|
return BuyAssetUis
|
|
end
|
|
|
|
function XItemConfigs.GetItemNameById(id)
|
|
if not ItemTemplates[id] then
|
|
return ""
|
|
end
|
|
|
|
return ItemTemplates[id].Name
|
|
end
|
|
|
|
function XItemConfigs.GetItemIconById(id)
|
|
if not ItemTemplates[id] then
|
|
return nil
|
|
end
|
|
|
|
return ItemTemplates[id].Icon
|
|
end
|
|
|
|
function XItemConfigs.GetQualityById(id)
|
|
if not ItemTemplates[id] then
|
|
return nil
|
|
end
|
|
|
|
return ItemTemplates[id].Quality
|
|
end
|
|
|
|
function XItemConfigs.GetItemSubTypeParams(id)
|
|
if not ItemTemplates[id] then
|
|
return nil
|
|
end
|
|
|
|
return ItemTemplates[id].SubTypeParams
|
|
end
|
|
|
|
function XItemConfigs.GetBuyAssetTotalLimit(id)
|
|
return BuyAssetTotalLimit[id] or 0
|
|
end
|
|
|
|
function XItemConfigs.GetBuyAssetTimeId(id)
|
|
return BuyAssetTimeId[id] or 0
|
|
end
|
|
|
|
-- function XItemConfigs.GetDiscountShow(id)
|
|
-- return BuyAssetDiscountShow[id] or 0
|
|
-- end
|
|
|
|
function XItemConfigs.GetDefaultCollectList()
|
|
return ItemCollectionDefaultCollect
|
|
end
|
|
|
|
function XItemConfigs.GetItemCollectTemplate(id)
|
|
local template = ItemCollectionTemplates[id]
|
|
if not template then
|
|
XLog.ErrorTableDataNotFound("XItemConfigs.GetItemCollectTemplate",
|
|
"ItemCollection", TABLE_ITEM_COLLECTION_PATH, "Id", id)
|
|
return {}
|
|
end
|
|
return template
|
|
end |