Browse Source

让部分怪可以被搜到

tags/v11.1
枫谷剑仙 5 years ago
parent
commit
b7f3d173fe
1 changed files with 147 additions and 107 deletions
  1. +147
    -107
      languages/zh-CN.js

+ 147
- 107
languages/zh-CN.js View File

@@ -1434,23 +1434,49 @@ function parseSkillDescription(skill)
//增加特殊搜索模式
(function() {
'use strict';
//返回卡片的队长技能
function getCardLeaderSkill(card, skillTypes, searchRandom = true)
{
return getActuallySkill(Skills[card.leaderSkillId], skillTypes, searchRandom);
}
//返回卡片的技能
function getCardSkill(card, skillTypes, isLeaderSkill = false)
function getCardActiveSkill(card, skillTypes, searchRandom = true)
{
return isLeaderSkill ?
getActuallySkill(Skills[card.leaderSkillId], skillTypes) :
getActuallySkill(Skills[card.activeSkillId], skillTypes);
return getActuallySkill(Skills[card.activeSkillId], skillTypes, searchRandom);
}
//返回卡片的技能
function getCardSkill(card, skillTypes, searchRandom = true, skillGreatType = 0)
{
switch(skillGreatType)
{
case 1:
case "leader":
return getCardLeaderSkill(card, skillTypes, searchRandom);
case 2:
case "active":
return getCardActiveSkill(card, skillTypes, searchRandom);
default:
return getCardLeaderSkill(card, skillTypes, searchRandom) || getCardActiveSkill(card, skillTypes, searchRandom)
}
}
//查找到真正起作用的那一个技能
function getActuallySkill(skill,skillTypes)
function getActuallySkill(skill, skillTypes, searchRandom = true)
{
if (skillTypes.includes(skill.type))
{
return skill;
}else if (skill.type == 116 || skill.type == 118 || skill.type == 138)
}else if (skill.type == 116 || (searchRandom && skill.type == 118) || skill.type == 138)
{
const subSkills = skill.params.map(id=>Skills[id]);
return subSkills.find(subskill => skillTypes.includes(subskill.type));
for(let i = 0;i < subSkills.length; i++)
{ //因为可能有多层调用,特别是随机118再调用组合116的,所以需要递归
let foundSubSkill = getActuallySkill(subSkills[i], skillTypes, searchRandom);
if (foundSubSkill)
{
return foundSubSkill;
}
}
return null;
}else
{
return null;
@@ -1629,22 +1655,11 @@ function parseSkillDescription(skill)
}
}
return cards.filter(card=>{
const skill = Skills[card.leaderSkillId];
if (searchTypeArray.some(t=>skill.type == t && getSkillFixedDamage(skill)>0))
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 && getSkillFixedDamage(subskill)>0));
}
const skill = getCardLeaderSkill(card, searchTypeArray);
return skill ? (getSkillFixedDamage(skill)>0) : false;
}).sort((a,b)=>{
const a_s = Skills[a.leaderSkillId], b_s = Skills[b.leaderSkillId];
let a_pC = 0,b_pC = 0;
a_pC = searchTypeArray.includes(a_s.type) ?
getSkillFixedDamage(a_s) :
getSkillFixedDamage(a_s.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type)));
b_pC = searchTypeArray.includes(b_s.type) ?
getSkillFixedDamage(b_s) :
getSkillFixedDamage(b_s.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type)));
const a_s = getCardLeaderSkill(a, searchTypeArray), b_s = getCardLeaderSkill(b, searchTypeArray);
let a_pC = getSkillFixedDamage(a_s),b_pC = getSkillFixedDamage(b_s);
return a_pC - b_pC;
});
},addition:card=>{
@@ -1661,10 +1676,9 @@ function parseSkillDescription(skill)
return 0;
}
}
const skill = Skills[card.leaderSkillId];
const value = searchTypeArray.includes(skill.type) ?
getSkillFixedDamage(skill) :
getSkillFixedDamage(skill.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type)));
const skill = getCardLeaderSkill(card, searchTypeArray);
const sk = skill.params;
const value = getSkillFixedDamage(skill);
return document.createTextNode(value.bigNumberToString() + "固伤");
}},
{name:"队长技+C(按+C数排序)",function:cards=>{
@@ -1686,22 +1700,11 @@ function parseSkillDescription(skill)
}
}
return cards.filter(card=>{
const skill = Skills[card.leaderSkillId];
if (searchTypeArray.some(t=>skill.type == t && getSkillAddCombo(skill)>0))
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 && getSkillAddCombo(subskill)>0));
}
const skill = getCardLeaderSkill(card, searchTypeArray);
return skill ? (getSkillAddCombo(skill)>0) : false;
}).sort((a,b)=>{
const a_s = Skills[a.leaderSkillId], b_s = Skills[b.leaderSkillId];
let a_pC = 0,b_pC = 0;
a_pC = searchTypeArray.includes(a_s.type) ?
getSkillAddCombo(a_s) :
getSkillAddCombo(a_s.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type)));
b_pC = searchTypeArray.includes(b_s.type) ?
getSkillAddCombo(b_s) :
getSkillAddCombo(b_s.params.map(id=>Skills[id]).find(subskill => searchTypeArray.includes(subskill.type)));
const a_s = getCardLeaderSkill(a, searchTypeArray), b_s = getCardLeaderSkill(b, searchTypeArray);
let a_pC = getSkillAddCombo(a_s),b_pC = getSkillAddCombo(b_s);
return a_pC - b_pC;
});
},addition:card=>{
@@ -1722,7 +1725,7 @@ function parseSkillDescription(skill)
return 0;
}
}
const skill = getCardSkill(card, searchTypeArray, true);
const skill = getCardLeaderSkill(card, searchTypeArray);
const sk = skill.params;
const value = getSkillAddCombo(skill);
return document.createTextNode(`+${value.bigNumberToString()}C${skill.type==210?`/十字`:""}`);
@@ -1997,7 +2000,13 @@ function parseSkillDescription(skill)
b_s.params[0] :
b_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[0];
return a_pC - b_pC;
})},
}),
addition:card=>{
const searchTypeArray = [53];
const skill = getCardLeaderSkill(card, searchTypeArray);
const sk = skill.params;
return document.createTextNode(`掉率x${sk[0]/100}`);
}},
{name:"增加金币掉落倍数(按增加倍率排序)",function:cards=>cards.filter(card=>{
const searchType = 54;
const skill = Skills[card.leaderSkillId];
@@ -2018,7 +2027,13 @@ function parseSkillDescription(skill)
b_s.params[0] :
b_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[0];
return a_pC - b_pC;
})},
}),
addition:card=>{
const searchTypeArray = [54];
const skill = getCardLeaderSkill(card, searchTypeArray);
const sk = skill.params;
return document.createTextNode(`金币x${sk[0]/100}`);
}},
{name:"增加经验获取倍数(按增加倍率排序)",function:cards=>cards.filter(card=>{
const searchType = 148;
const skill = Skills[card.leaderSkillId];
@@ -2039,7 +2054,13 @@ function parseSkillDescription(skill)
b_s.params[0] :
b_s.params.map(id=>Skills[id]).find(subskill => subskill.type == searchType).params[0];
return a_pC - b_pC;
})},
}),
addition:card=>{
const searchTypeArray = [148];
const skill = getCardLeaderSkill(card, searchTypeArray);
const sk = skill.params;
return document.createTextNode(`经验x${sk[0]/100}`);
}},
{name:"-----血倍率-----",function:cards=>cards},
{name:"队长血倍率[2, ∞)(按倍率排序)",function:cards=>cards.filter(card=>{
const skill = Skills[card.leaderSkillId];
@@ -2206,6 +2227,7 @@ function parseSkillDescription(skill)
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=>Skills[card.activeSkillId].type == 118)},
{name:"-----破吸类-----",function:cards=>cards},
{name:"破属吸 buff(按破吸回合排序)",function:cards=>cards.filter(card=>{
const searchType = 173;
@@ -2946,18 +2968,31 @@ function parseSkillDescription(skill)
return subskills.some(subskill=>searchTypeArray.includes(subskill.type));
}
})},
{name:"回复力 buff(顶降回复)",function:cards=>cards.filter(card=>{
const searchTypeArray = [50,90];
const skill = Skills[card.activeSkillId];
if (searchTypeArray.includes(skill.type) && skill.params.slice(1,skill.params.length>2?-1:undefined).includes(5))
return true;
else if (skill.type == 116 || skill.type == 118){
const subskills = skill.params.map(id=>Skills[id]);
return subskills.some(subskill=>
searchTypeArray.includes(subskill.type) && subskill.params.slice(1,subskill.params.length>2?-1:undefined).includes(5)
);
{
name:"回复力 buff(顶降回复)",
function:cards=>{
const searchTypeArray = [50,90];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
if (skill)
{
const sk = skill.params;
return sk.slice(1,sk.length>2?-1:undefined).includes(5);
}else return false;
}).sort((a,b)=>{
const a_s = getCardActiveSkill(a, searchTypeArray), b_s = getCardActiveSkill(b, searchTypeArray);
//将技能的手指类型转换为二进制01、10、11等形式,低位表示加固定秒,高位表示手指加倍
const a_ss = a_s.params.length > 2 ? a_s.params[a_s.params.length-1] : 0, b_ss = b_s.params.length > 2 ? b_s.params[b_s.params.length-1] : 0;
return a_ss - b_ss;
});
},
addition:card=>{
const searchTypeArray = [50,90];
const skill = getCardActiveSkill(card, searchTypeArray);
const sk = skill.params;
return document.createTextNode(`回x${sk.length > 2 ? sk[sk.length-1]/100 : 0}`);
}
})},
},
{name:"攻击力 buff(顶降攻击)",function:cards=>cards.filter(card=>{
const searchTypeArray = [
88,92, //类型的
@@ -2979,16 +3014,30 @@ function parseSkillDescription(skill)
);
}
})},
{name:"操作时间 buff(顶减手指)",function:cards=>cards.filter(card=>{
const searchType = 132;
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:"操作时间 buff(顶减手指)",
function:cards=>{
const searchTypeArray = [132];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
}).sort((a,b)=>{
const a_s = getCardActiveSkill(a, searchTypeArray), b_s = getCardActiveSkill(b, searchTypeArray);
//将技能的手指类型转换为二进制01、10、11等形式,低位表示加固定秒,高位表示手指加倍
const a_t = Boolean(a_s.params[1]) | Boolean(a_s.params[2])<<1, b_t = Boolean(b_s.params[1]) | Boolean(b_s.params[2])<<1;
return (a_t - b_t) || ((a_t & b_t & 1) ? a_s.params[1] - b_s.params[1] : a_s.params[2] - b_s.params[2]);
});
},
addition:card=>{
const searchTypeArray = [132];
const skill = getCardActiveSkill(card, searchTypeArray);
const sk = skill.params;
let str = "";
if (sk[1]) str += `${sk[1]>0?`+`:``}${sk[1]/10}S`;
if (sk[2]) str += `👆x${sk[2]/100}`;
return document.createTextNode(str);
}
})},
},
{name:"无天降 buff(顶无天降)",function:cards=>cards.filter(card=>{
const searchType = 184;
const skill = Skills[card.activeSkillId];
@@ -3009,27 +3058,28 @@ function parseSkillDescription(skill)
return subskills.some(subskill=>subskill.type == searchType);
}
})},
{name:"加C buff(按C数排列)",function:cards=>cards.filter(card=>{
const searchType = 160;
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:"加C buff(按C数排列)",
function:cards=>{
const searchTypeArray = [160];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
}).sort((a,b)=>{
const a_s = getCardActiveSkill(a, searchTypeArray), b_s = getCardActiveSkill(b, searchTypeArray);
return a_s.params[1] - b_s.params[1];
});
},
addition:card=>{
const searchTypeArray = [160];
const skill = getCardActiveSkill(card, searchTypeArray);
const sk = skill.params;
let str = "";
if (sk[1]) str += `${sk[1]>0?`+`:``}${sk[1]/10}S`;
if (sk[2]) str += `👆x${sk[2]/100}`;
return document.createTextNode(`+${sk[1]}C×${sk[0]}T`);
}
}).sort((a,b)=>{
const searchType = 160;
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;
})},
},
{name:"全属减伤 buff(按减伤比率排序)",function:cards=>cards.filter(card=>{
const searchTypeArray = [3,156];
const skill = Skills[card.activeSkillId];
@@ -3175,7 +3225,7 @@ function parseSkillDescription(skill)
return subskills.some(subskill=>subskill.type == searchType);
}
})},
{name:"回血 buff",function:cards=>cards.filter(card=>{
{name:"回合结束回血 buff",function:cards=>cards.filter(card=>{
const searchTypeArray = [179];
const skill = Skills[card.activeSkillId];
if (searchTypeArray.includes(skill.type))
@@ -3291,27 +3341,17 @@ function parseSkillDescription(skill)
}
})},
{name:"-----对敌 buff 类-----",function:cards=>cards},
{name:"威吓(按推迟回合排序)",function:cards=>cards.filter(card=>{
const searchType = 18;
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 = 18;
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;
}),addition:card=>{
{name:"威吓(按推迟回合排序)",function:cards=>{
const searchTypeArray = [18];
return cards.filter(card=>{
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
}).sort((a,b)=>{
const a_s = getCardActiveSkill(a, searchTypeArray), b_s = getCardActiveSkill(b, searchTypeArray);
let a_pC = a_s.params[0],b_pC = b_s.params[0];
return a_pC - b_pC;
});
},addition:card=>{
const searchTypeArray = [18];
const skill = getCardSkill(card, searchTypeArray);
const sk = skill.params;


Loading…
Cancel
Save