242 lines
5.5 KiB
Lua
242 lines
5.5 KiB
Lua
|
------------------------------------------------
|
||
|
--作者: 王圣
|
||
|
--日期: 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
|