【排序优化】修改神将界面中的排序规则

dev_chengFeng
ZhangBiao 2021-08-23 15:45:10 +08:00
parent a7350e7f53
commit 1614afb3bf
1 changed files with 25 additions and 29 deletions

View File

@ -255,56 +255,52 @@ function this:SetSelectBtn()
this.selectBtn.transform:SetParent(tabs[proId].transform)
this.selectBtn:GetComponent("RectTransform").localPosition = Vector3.zero
end
function this:SortHeroDatas(_heroDatas)
--上阵最优先星级优先同星级等级优先同星级同等级按sortId排序。排序时降序排序。
table.sort(_heroDatas, function(a, b)
--如果都在编队或都不在编队
if (teamHero[a.dynamicId] and teamHero[b.dynamicId]) or (not teamHero[a.dynamicId] and not teamHero[b.dynamicId]) then
if sortType==SortTypeConst.Lv then
if a.lv ==b.lv then
if a.heroConfig.Quality ==b.heroConfig.Quality then--Natural
--根据等级排列
if sortType == SortTypeConst.Lv then
--判断等级是否相同
if a.lv == b.lv then
--判断战力是否相同
if a.warPower == b.warPower then
---判断星级是否相同
if a.star == b.star then
if a.warPower == b.warPower then
if a.heroConfig.Natural ==b.heroConfig.Natural then--Natural
return a.heroConfig.Id < b.heroConfig.Id
else
return a.heroConfig.Natural > b.heroConfig.Natural
end
else
return a.warPower > b.warPower
end
--返回图鉴排序
return a.heroConfig.Sort < b.heroConfig.Sort
else
return a.star > b.star
end
else
return a.heroConfig.Quality > b.heroConfig.Quality
return a.warPower > b.warPower
end
else
return a.lv>b.lv
return a.lv > b.lv
end
--根据品阶排列
elseif sortType==SortTypeConst.Natural then
if a.heroConfig.Quality ==b.heroConfig.Quality then--Natural
if a.star == b.star then
--是否星级相同
if a.star == b.star then
--判断战力是否相同
if a.warPower == b.warPower then
--判断等级是否相同
if a.lv == b.lv then
if a.warPower == b.warPower then
if a.heroConfig.Natural ==b.heroConfig.Natural then--Natural
return a.heroConfig.Id < b.heroConfig.Id
else
return a.heroConfig.Natural > b.heroConfig.Natural
end
else
return a.warPower > b.warPower
end
--返回图鉴排序
return a.heroConfig.Sort < b.heroConfig.Sort
else
return a.lv > b.lv
end
else
return a.star > b.star
return a.lv > b.lv
end
else
return a.heroConfig.Quality > b.heroConfig.Quality
return a.star > b.star
end
end
end
else
--一个在一个不在先返回在的+不在的
return teamHero[a.dynamicId] and not teamHero[b.dynamicId]
end
end)