丰富筛选功能
This commit is contained in:
parent
597c244fc4
commit
1ca3ba76b7
|
@ -2,8 +2,9 @@
|
|||
|
||||
//查找原先完整技能
|
||||
function findFullSkill(subSkill){
|
||||
const parentSkill = Skills.find(ss=>(ss.type === 116 || ss.type === 118 || ss.type === 138) && ss.params.includes(subSkill.id));
|
||||
return parentSkill || subSkill;
|
||||
const parentSkill = Skills.find(ss=>(ss.type === 116 || ss.type === 118 || ss.type === 138) && ss.params.includes(subSkill.id)) || subSkill;
|
||||
const aCard = Cards.find(card=>card.activeSkillId == parentSkill.id || card.leaderSkillId == parentSkill.id);
|
||||
return {skill:parentSkill,card:aCard};
|
||||
}
|
||||
//document.querySelector(".edit-box .row-mon-id .m-id").type = "number";
|
||||
//Skills.filter(s=>{const sk = s.params; return s.type == 156;}).map(findFullSkill)
|
||||
|
@ -409,15 +410,15 @@ function parseSkillDescription(skill)
|
|||
str = `${sk[0]}回合内${typeN(sk[1])}类型的攻击力×${sk[2]/100}倍`;
|
||||
break;
|
||||
case 90:
|
||||
strArr = sk.slice(1,sk.length-1);
|
||||
str = `${sk[0]}回合内${strArr.map(attrN).join("、")}属性的攻击力×${sk[sk.length-1]/100}倍`;
|
||||
strArr = sk.slice(1,-1);
|
||||
str = `${sk[0]}回合内${strArr.filter(sk=>sk<5).map(attrN).join("、")}属性的攻击力${strArr.includes(5)?'、回复力':''}×${sk[sk.length-1]/100}倍`;
|
||||
break;
|
||||
case 91:
|
||||
str = `${sk.slice(0,sk.length-1).map(attrN).join("、")}属性宝珠强化`;
|
||||
str = `${sk.slice(0,-1).map(attrN).join("、")}属性宝珠强化`;
|
||||
if (sk[sk.length-1] != 6) str += `未知 参数${sk.length-1} ${sk[sk.length-1]}`;
|
||||
break;
|
||||
case 92:
|
||||
strArr = sk.slice(1,sk.length-1);
|
||||
strArr = sk.slice(1,-1);
|
||||
str = `${sk[0]}回合内${strArr.map(typeN).join("、")}类型的攻击力×${sk[sk.length-1]/100}倍`;
|
||||
break;
|
||||
case 93:
|
||||
|
@ -1615,14 +1616,37 @@ function parseBigNumber(number)
|
|||
return subskills.some(subskill=>subskill.type == searchType && (subskill.params[0] & 960) > 0);
|
||||
}
|
||||
})},
|
||||
{name:"所有顶回复",function:cards=>cards.filter(card=>{
|
||||
const searchType = 50;
|
||||
{name:"所有顶回复力",function:cards=>cards.filter(card=>{
|
||||
const searchTypeArray = [50,90];
|
||||
const skill = Skills[card.activeSkillId];
|
||||
if (skill.type == searchType && skill.params[1] === 5)
|
||||
if (searchTypeArray.includes(skill.type) && skill.params.slice(1,-1).includes(5))
|
||||
return true;
|
||||
else if (skill.type == 116 || skill.type == 118){
|
||||
const subskills = skill.params.map(id=>Skills[id]);
|
||||
return subskills.some(subskill=>subskill.type == searchType && subskill.params[1] === 5);
|
||||
return subskills.some(subskill=>
|
||||
searchTypeArray.includes(subskill.type) && subskill.params.slice(1,-1).includes(5)
|
||||
);
|
||||
}
|
||||
})},
|
||||
{name:"所有顶攻击力",function:cards=>cards.filter(card=>{
|
||||
const searchTypeArray = [
|
||||
88,91, //类型的
|
||||
50,90, //属性的,要排除回复力
|
||||
156,168, //宝石姬
|
||||
];
|
||||
const skill = Skills[card.activeSkillId];
|
||||
if ((skill.type==88 || skill.type==91) || //类型的
|
||||
(skill.type==50 || skill.type==90) && skill.params.slice(1,-1).some(sk=>sk!=5) || //属性的,要排除回复力
|
||||
skill.type==156 && skill.params[4] == 2 || skill.type==168 //宝石姬的
|
||||
)
|
||||
return true;
|
||||
else if (skill.type == 116 || skill.type == 118){
|
||||
const subskills = skill.params.map(id=>Skills[id]);
|
||||
return subskills.some(subskill=>
|
||||
(subskill.type==88 || subskill.type==91) || //类型的
|
||||
(subskill.type==50 || subskill.type==90) && subskill.params.slice(1,-1).some(sk=>sk!=5) || //属性的,要排除回复力
|
||||
subskill.type==156 && subskill.params[4] == 2 || subskill.type==168 //宝石姬的
|
||||
);
|
||||
}
|
||||
})},
|
||||
{name:"所有顶手指",function:cards=>cards.filter(card=>{
|
||||
|
@ -1771,28 +1795,49 @@ function parseBigNumber(number)
|
|||
b_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[0];
|
||||
return a_pC - b_pC;
|
||||
})},
|
||||
{name:"所有减伤(按减伤比率排序)",function:cards=>cards.filter(card=>{
|
||||
const searchType = 3;
|
||||
{name:"所有减伤(含宝石姬类,按减伤比率排序)",function:cards=>cards.filter(card=>{
|
||||
const searchTypeArray = [3,156];
|
||||
const skill = Skills[card.activeSkillId];
|
||||
if (skill.type == searchType)
|
||||
if (skill.type == 3 ||
|
||||
skill.type == 156 && skill.params[4]==3
|
||||
)
|
||||
return true;
|
||||
else if (skill.type == 116 || skill.type == 118){
|
||||
const subskills = skill.params.map(id=>Skills[id]);
|
||||
return subskills.some(subskill=>subskill.type == searchType);
|
||||
return subskills.some(subskill=>
|
||||
subskill.type == 3 ||
|
||||
subskill.type == 156 && subskill.params[4]==3
|
||||
);
|
||||
}
|
||||
}).sort((a,b)=>{
|
||||
const searchType = 3;
|
||||
const searchTypeArray = [3,156];
|
||||
const a_s = Skills[a.activeSkillId], b_s = Skills[b.activeSkillId];
|
||||
let a_pC = 0,b_pC = 0;
|
||||
a_pC = (a_s.type == searchType) ?
|
||||
a_s.params[1] :
|
||||
a_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[1];
|
||||
b_pC = (b_s.type == searchType) ?
|
||||
b_s.params[1] :
|
||||
b_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[1];
|
||||
return a_pC - b_pC;
|
||||
|
||||
//找到真正生效的子技能
|
||||
const a_ss = searchTypeArray.includes(a_s.type) ?
|
||||
a_s :
|
||||
a_s.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type));
|
||||
const b_ss = searchTypeArray.includes(b_s.type) ?
|
||||
b_s :
|
||||
b_s.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type));
|
||||
let sortNum = b_ss.type - a_ss.type; //先分开宝石姬与非宝石姬
|
||||
if (!sortNum)
|
||||
{
|
||||
let a_pC = 0,b_pC = 0;
|
||||
if (a_ss.type == 3)
|
||||
{
|
||||
a_pC = a_ss.params[1];
|
||||
b_pC = b_ss.params[1];
|
||||
}else
|
||||
{
|
||||
a_pC = a_ss.params[5];
|
||||
b_pC = b_ss.params[5];
|
||||
}
|
||||
sortNum = a_pC - b_pC;
|
||||
}
|
||||
return sortNum;
|
||||
})},
|
||||
{name:"所有无敌-减伤100%(按无敌回合数排序)",function:cards=>cards.filter(card=>{
|
||||
{name:"所有无敌-减伤100%(不含宝石姬,按无敌回合数排序)",function:cards=>cards.filter(card=>{
|
||||
const searchType = 3;
|
||||
const skill = Skills[card.activeSkillId];
|
||||
if (skill.type == searchType && skill.params[1]>=100)
|
||||
|
@ -1844,6 +1889,37 @@ function parseBigNumber(number)
|
|||
return subskills.some(subskill=>subskill.type == searchType);
|
||||
}
|
||||
})},
|
||||
{name:"所有受伤反击",function:cards=>cards.filter(card=>{
|
||||
const searchType = 60;
|
||||
const skill = Skills[card.activeSkillId];
|
||||
if (skill.type == searchType)
|
||||
return true;
|
||||
else if (skill.type == 116 || skill.type == 118){
|
||||
const subskills = skill.params.map(id=>Skills[id]);
|
||||
return subskills.some(subskill=>subskill.type == searchType);
|
||||
}
|
||||
})},
|
||||
{name:"所有变为全体攻击(按回合数排序)",function:cards=>cards.filter(card=>{
|
||||
const searchType = 51;
|
||||
const skill = Skills[card.activeSkillId];
|
||||
if (skill.type == searchType)
|
||||
return true;
|
||||
else if (skill.type == 116 || skill.type == 118){
|
||||
const subskills = skill.params.map(id=>Skills[id]);
|
||||
return subskills.some(subskill=>subskill.type == searchType);
|
||||
}
|
||||
}).sort((a,b)=>{
|
||||
const searchType = 5;
|
||||
const a_s = Skills[a.activeSkillId], b_s = Skills[b.activeSkillId];
|
||||
let a_pC = 0,b_pC = 0;
|
||||
a_pC = (a_s.type == searchType) ?
|
||||
a_s.params[0] :
|
||||
a_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[0];
|
||||
b_pC = (b_s.type == searchType) ?
|
||||
b_s.params[0] :
|
||||
b_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[0];
|
||||
return a_pC - b_pC;
|
||||
})},
|
||||
{name:"====队长技====",function:cards=>cards},
|
||||
{name:"所有普通追打(按追打比率排序)",function:cards=>cards.filter(card=>{
|
||||
const searchType = 12;
|
||||
|
@ -1869,11 +1945,11 @@ function parseBigNumber(number)
|
|||
{name:"所有固伤追击",function:cards=>cards.filter(card=>{
|
||||
const searchTypeArray = [199,200,201];
|
||||
const skill = Skills[card.leaderSkillId];
|
||||
if (searchTypeArray.some(t=>skill.type == t))
|
||||
if (searchTypeArray.includes(skill.type))
|
||||
return true;
|
||||
else if (skill.type == 138){
|
||||
const subskills = skill.params.map(id=>Skills[id]);
|
||||
return subskills.some(subskill=>searchTypeArray.some(t=>subskill.type == t));
|
||||
return subskills.some(subskill=>searchTypeArray.includes(subskill.type));
|
||||
}
|
||||
})},
|
||||
{name:"所有队长+C(按+C数排序)",function:cards=>cards.filter(card=>{
|
||||
|
|
Loading…
Reference in New Issue