Lua 英雄列表排序+刷新时间戳


--获取某个背包类型列表
--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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值