--获取某个背包类型列表
--list_id 参见ESnkPackage
--sortList ={
-- quality, 品质
-- fightValue, 战斗力
-- star, 星级
-- level, 等级
-- lineup, 上阵
--} 排序规则
--
----返回值:根据类型返回HeroData、EquipData、ItemData中的一种列表集合,k为唯一id,例:{[1]=dataid,[2]=dataid,[3]=dataid};
function SnkPackage:GetSortCard(list_id, sortList)
local list = self:GetCard(list_id);
local sortString = "";
for k, v in ipairs(sortList) do
sortString = sortString..v;
end
if self.sortList[list_id][sortString] then
return self.sortList[list_id][sortString];
else
return self:SortCard(list_id, list, sortString, sortList);
end
end
--排序内部调用函数
function SnkPackage:SortCard(list_id, list, sortString, sort)
local sortList = {}
for k, v in pairs(list) do
table.insert(sortList, v:GetDataId());
end
table.sort(sortList, function(aDataId, bDataId)
local a = list[aDataId];
local b = list[bDataId];
for k, v in ipairs(sort) do
if v == "quality" then
if a:GetQuality() > b:GetQuality() then
return true;
elseif a:GetQuality() > b:GetQuality() then
return false;
end
elseif v == "fightValue" then
if a:GetCombat() > b:GetCombat() then
return true;
elseif a:GetCombat() > b:GetCombat() then
return false;
end
elseif v == "star" then
if a:GetStar() > b:GetStar() then
return true;
elseif a:GetStar() > b:GetStar() then
return false;
end
elseif v == "level" then
if a:GetLevel() > b:GetLevel() then
return true;
elseif a:GetLevel() > b:GetLevel() then
return false;
end
elseif v == "lineup" then
local playerData = DataCenterGet(ESnkDataCenter.player);
local aLineUp = playerData:CheckHeroIsLineUp(a:GetDataId());
local bLineUp = playerData:CheckHeroIsLineUp(b:GetDataId());
if aLineUp and not bLineUp then
return true;
elseif not aLineUp and bLineUp then
return false;
end
end
end
return false;
end)
sortList.sort = sortList;
self.sortList[list_id][sortString] = sortList;
return sortList;
end
function SnkPackage:UpdateSortList(list_id)
for k, v in pairs(self.sortList[list_id]) do
self:SortCard(list_id, self:GetCard(list_id), k, v.sort);
end
end
-- 刷新商场时间
function ShopMain:UpdateTime(time)
-- body
app.log("<color=aqua> 获取数据 </color>".."time-"..tostring(time))
local shop_info = self:TheDataProcessing(self.ShopModuleTag) --商店信息
local time = shop_info.refresh_time - os.time()
local hour = math.floor(time / 3600)
local minute = math.floor((time - hour * 3600) / 60)
local seconds = math.floor(time - hour * 3600 - minute * 60)
local num1,num2,num3
if hour <= 9 then
num1 = "0"..hour
else
num1 = hour
end
if minute <= 9 then
num2 = "0"..minute
else
num2 = minute
end
if seconds <= 9 then
num3 = "0"..seconds
else
num3 = seconds
end
self.time_stamp:set_text(num1..":"..num2..":"..num3)
end