Files
Main/Assets/GameAssets/Resources/Lua/Logic/NewFashion/FashionData.lua

242 lines
5.5 KiB
Lua
Raw Normal View History

2025-01-25 04:38:09 +08:00
------------------------------------------------
--作者: 王圣
--日期: 2020-08-22
--文件: FashionTuJianData.lua
--模块: FashionTuJianData
--描述: 时装图鉴数据
------------------------------------------------
local FashionData = {
StarNum = 0,
--是否穿戴
IsWear = false,
--是否激活
IsActive = false,
--是否是新增的
IsNew = false,
CfgId = 0,
Cfg = nil,
IconId = -1,
--模型ID
ModelId = 0,
--激活道具ID
ItemId = 0,
--{AttId : 属性ID, Value : 属性值, Add : 增加属性}
ListAtt = List:New()
}
function FashionData:New(id, cfg)
local _m = Utils.DeepCopy(self)
_m.CfgId = id
_m.Cfg = cfg
return _m
end
--获取去配置ID
function FashionData:GetCfgId()
return self.CfgId
end
--获取获取配置数据
function FashionData:GetCfg()
return self.Cfg
end
--获取类型
function FashionData:GetType()
return self.Cfg.Type
end
--获取名字
function FashionData:GetName()
return self.Cfg.Name
end
--获取模型id
function FashionData:GetModelId(occ)
if self.ModelId == -1 then
if self.Cfg ~= nil then
local list = Utils.SplitStr(self.Cfg.Res, ';')
for i = 1,#list do
local subList = Utils.SplitNumber(list[i], '_')
if occ == subList[1] then
self.ModelId = subList[2]
end
end
end
end
return self.ModelId
end
--获取图鉴图标
function FashionData:GetIconId(occ)
if self.IconId == -1 then
if self.Cfg ~= nil then
local list = Utils.SplitStr(self.Cfg.Icon, ';')
for i = 1,#list do
local subList = Utils.SplitNumber(list[i], '_')
if occ == subList[1] then
self.IconId = subList[2]
end
end
end
end
return self.IconId
end
--获取套装属性列表
function FashionData:GetAttList()
if #self.ListAtt == 0 then
if self.Cfg ~= nil then
local list = Utils.SplitStr(self.Cfg.RentAtt, ';')
for i = 1,#list do
local subList = Utils.SplitNumber(list[i], '_')
local data = {AttId = subList[1], Value = subList[2], Add = subList[3]}
self.ListAtt:Add(data)
end
end
end
return self.ListAtt
end
--获取激活道具
--获取时装星级
function FashionData:GetStarNum()
return self.StarNum
end
--获取道具id
function FashionData:GetItemId(occ)
if self.ItemId == 0 then
if self.Cfg ~= nil then
local list = Utils.SplitStr(self.Cfg.ActiveItem, ';')
for i = 1,#list do
local subList = Utils.SplitNumber(list[i], '_')
if occ == subList[1] then
self.ItemId = subList[2]
break
end
end
end
end
return self.ItemId
end
function FashionData:GetNeedItemNum(starNum)
local ret = 0
if self.Cfg ~= nil then
local list = Utils.SplitStr(self.Cfg.StarItemnum, ';')
for i = 1,#list do
local subList = Utils.SplitNumber(list[i], '_')
if starNum == subList[1] then
ret = subList[2]
break
end
end
end
return ret
end
--获取Quality
function FashionData:GetQuality()
local ret = 0
if self.Cfg ~= nil then
ret = self.Cfg.Quality
end
return ret
end
--获取模型id
function FashionData:GetModelId(occ)
local ret = 0
if self.Cfg ~= nil then
local list = Utils.SplitStr(self.Cfg.Res, ';')
for i = 1,#list do
local subList = Utils.SplitNumber(list[i], '_')
if occ == subList[1] then
ret = subList[2]
break
end
end
end
return ret
end
--获取模型的Y坐标
function FashionData:GetModelYPos()
local ret = 0
if self.Cfg ~= nil then
ret = self.Cfg.ModelYPos
end
return ret
end
--获取模型X坐标
function FashionData:GetModelXPos()
local ret = 0
if self.Cfg ~= nil then
ret = self.Cfg.ModelXPos
end
return ret
end
--获取模型Z坐标
function FashionData:GetModelZPos()
local ret = 0
if self.Cfg ~= nil then
ret = self.Cfg.ModelZPos
end
return ret
end
--获取模型Y轴旋转值
function FashionData:GetModelYRot()
local ret = 0
if self.Cfg ~= nil then
ret = self.Cfg.ModelYRot
end
return ret
end
--获取模型Y轴旋转值
function FashionData:GetModelZRot()
local ret = 0
if self.Cfg ~= nil then
ret = self.Cfg.ModelZRot
end
return ret
end
--获取相机size
function FashionData:GetCameraSize()
local ret = 0
if self.Cfg ~= nil then
ret = self.Cfg.CameraSize
end
return ret
end
--是否可以升星
function FashionData:CanUpStar(occ)
if self.StarNum >= 5 then
return false
end
local itemId = self:GetItemId(occ)
local needNum = self:GetNeedItemNum(self.StarNum + 1)
local count = GameCenter.ItemContianerSystem:GetItemCountFromCfgId(itemId)
return count >= needNum
end
--判断是否可以激活
function FashionData:CanActive(occ)
local itemId = self:GetItemId(occ)
local needNum = self:GetNeedItemNum(0)
local count = GameCenter.ItemContianerSystem:GetItemCountFromCfgId(itemId)
return count >= needNum
end
function FashionData:IsEquialWithModelId(id, occ)
return self:GetModelId(occ) == id
end
return FashionData