重新增加4个队员以下可以循环使用技能的卡片搜索

This commit is contained in:
枫谷剑仙 2025-02-20 04:10:46 +08:00
parent 5eb1cb1b0d
commit 574431896e
4 changed files with 58 additions and 7 deletions

View File

@ -3660,9 +3660,36 @@ const specialSearchFunctions = (function() {
function:cards=>cards.filter(card=>{
if (card.activeSkillId == 0) return false;
let skill = Skills[card.activeSkillId];
//如果是单向进化类技能,也获取最后一次技能
if (skill.type == 232) skill = Skills[skill.params[skill.params.length-1]];
return skill.initialCooldown - (skill.maxLevel - 1) <= 1;
//单向进化技能,采用最后一个子技能
if (skill.type == 232) skill = Skills[skill.params.at(-1)];
return getSkillMinCD(skill) <= 1;
})
},
{name:"Skill Loop less than 4 card",otLangName:{chs:"4 个队员能循环开",cht:"4 個隊員能循環開"},
function:cards=>cards.filter(card=>{
if (card.activeSkillId == 0) return false;
let skill = Skills[card.activeSkillId];
//单向进化技能,采用最后一个子技能
if (skill.type === 232) skill = Skills[skill.params.at(-1)];
/*
* 202,变身只能用一次
* 218,坐CD永远都无法循环
* 250,移除武器作为基底时直接无法使用
* 268,使用次数限制
*/
const cantLoopSkill = getActuallySkills(skill, [202, 218, 250, 268]);
if (cantLoopSkill.length) return false;
const minCD = getSkillMinCD(skill); //主动技最小的CD
let realCD = minCD;
const skillBoost = getActuallySkills(skill, [146], false); //溜
if (skillBoost.length) {
realCD = skillBoost.reduce((cd,subSkill)=>{
return cd - subSkill.params[0] * 3; //第一个参数是溜几回合3个角色就是×3
}, realCD);
}
return minCD > 1 && realCD <= 4;
})
},
{name:"Time pause",otLangName:{chs:"时间暂停",cht:"時間暫停"},
@ -3702,6 +3729,13 @@ const specialSearchFunctions = (function() {
return `${skill.type == 232 ? "单向进化" : "🔁循环变化"}`;
}
},
{name:"Not Evolved active",otLangName:{chs:"非进化类技能",cht:"非進化類技能"},
function:cards=>cards.filter(card=>{
const searchTypeArray = [232, 233];
const skill = getCardActiveSkill(card, searchTypeArray);
return !skill;
})
},
{name:"Enable require HP range",otLangName:{chs:"技能使用血线要求",cht:"技能使用血線要求"},
function:cards=>cards.filter(card=>{
const searchTypeArray = [225];
@ -3768,6 +3802,20 @@ const specialSearchFunctions = (function() {
return fragment;
}
},
{name:"Has limit of times a skill can be used",otLangName:{chs:"技能使用有次数限制",cht:"技能使用有次數限制"},
function:cards=>cards.filter(card=>{
const searchTypeArray = [268];
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
}),
addition:card=>{
const searchTypeArray = [268];
const skill = getCardActiveSkill(card, searchTypeArray);
if (!skill) return;
const sk = skill.params;
return `${sk[0]}`;
}
},
]},
{group:true,name:"Leader Skills",otLangName:{chs:"队长技",cht:"隊長技"}, functions: [

View File

@ -1995,7 +1995,7 @@ function renderSkill(skill, option = {})
break;
}
case SkillKinds.EvolvedSkills: { //技能进化
let skills = skill.skills, loop = skill.loop;
let {skills, loop} = skill;
const ul = document.createElement("ul");
ul.className = "evolved-active-skill";
skills.forEach((subSkill, idx)=>{

View File

@ -1553,6 +1553,9 @@ function getActuallySkills(skill, skillTypes, searchRandom = true) {
return [];
}
}
function getSkillMinCD(skill){
return skill.initialCooldown - (skill.maxLevel - 1);
}
//返回变身宠的初级
function henshinBase(cardid, firstId)
{

View File

@ -42115,15 +42115,15 @@ const cachesMap = new Map([
],
[
"script-json_data.js",
"c2c5aa4182fa7fb2373a36a43c5e83be"
"44a611992513dfc4305a1400ee420b0b"
],
[
"script-skill-parser.js",
"4286f6c6a3815c90cf60a572e32f34bb"
"572072fdddec7ce70151adb6ebef5c42"
],
[
"script-universal_function.js",
"4245ab3a6e1f900d780f998d942141cc"
"bf0ac3d326328c1b48a8edcb4ed23828"
],
[
"script.js",