返回指定技能改为数组
This commit is contained in:
parent
ebaf38ef09
commit
93cef6ad48
|
@ -658,56 +658,57 @@ function countTeamHp(memberArr, leader1id, leader2id, solo, noAwoken = false) {
|
|||
}
|
||||
|
||||
//返回卡片的队长技能
|
||||
function getCardLeaderSkill(card, skillTypes) {
|
||||
return getActuallySkill(Skills[card.leaderSkillId], skillTypes, false);
|
||||
function getCardLeaderSkills(card, skillTypes) {
|
||||
return getActuallySkills(Skills[card.leaderSkillId], skillTypes, false);
|
||||
}
|
||||
//查找到真正起作用的那一个技能
|
||||
function getActuallySkill(skill, skillTypes, searchRandom = true) {
|
||||
if (skillTypes.includes(skill.type)) {
|
||||
return skill;
|
||||
} else if (skill.type == 116 || (searchRandom && skill.type == 118) || skill.type == 138) {
|
||||
const subSkills = skill.params.map(id => Skills[id]);
|
||||
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;
|
||||
function getActuallySkills(skill, skillTypes, searchRandom = true) {
|
||||
if (skillTypes.includes(skill.type))
|
||||
{
|
||||
return [skill];
|
||||
}
|
||||
else if (skill.type == 116 || (searchRandom && skill.type == 118) || skill.type == 138)
|
||||
{
|
||||
//因为可能有多层调用,特别是随机118再调用组合116的,所以需要递归
|
||||
let subSkills = skill.params.flatMap(id => getActuallySkills(Skills[id], skillTypes, searchRandom));
|
||||
subSkills = subSkills.filter(s=>s.length);
|
||||
return subSkills;
|
||||
}
|
||||
else
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
//计算队伍是否为76
|
||||
function tIf_Effect_76board(leader1id, leader2id) {
|
||||
const searchTypeArray = [162, 186];
|
||||
const ls1 = getCardLeaderSkill(Cards[leader1id], searchTypeArray);
|
||||
const ls2 = getCardLeaderSkill(Cards[leader2id], searchTypeArray);
|
||||
const ls1 = getCardLeaderSkills(Cards[leader1id], searchTypeArray)[0];
|
||||
const ls2 = getCardLeaderSkills(Cards[leader2id], searchTypeArray)[0];
|
||||
|
||||
return Boolean(ls1 || ls2);
|
||||
}
|
||||
//计算队伍是否为无天降
|
||||
function tIf_Effect_noSkyfall(leader1id, leader2id) {
|
||||
const searchTypeArray = [163, 177];
|
||||
const ls1 = getCardLeaderSkill(Cards[leader1id], searchTypeArray);
|
||||
const ls2 = getCardLeaderSkill(Cards[leader2id], searchTypeArray);
|
||||
|
||||
const ls1 = getCardLeaderSkills(Cards[leader1id], searchTypeArray)[0];
|
||||
const ls2 = getCardLeaderSkills(Cards[leader2id], searchTypeArray)[0];
|
||||
[0]
|
||||
return Boolean(ls1 || ls2);
|
||||
}
|
||||
//计算队伍是否为毒无效
|
||||
function tIf_Effect_poisonNoEffect(leader1id, leader2id) {
|
||||
const searchTypeArray = [197];
|
||||
const ls1 = getCardLeaderSkill(Cards[leader1id], searchTypeArray);
|
||||
const ls2 = getCardLeaderSkill(Cards[leader2id], searchTypeArray);
|
||||
const ls1 = getCardLeaderSkills(Cards[leader1id], searchTypeArray)[0];
|
||||
const ls2 = getCardLeaderSkills(Cards[leader2id], searchTypeArray)[0];
|
||||
|
||||
return Boolean(ls1 || ls2);
|
||||
}
|
||||
//计算队伍的+C
|
||||
function tIf_Effect_addCombo(leader1id, leader2id) {
|
||||
const searchTypeArray = [192, 194, 206, 209, 210];
|
||||
const ls1 = getCardLeaderSkill(Cards[leader1id], searchTypeArray);
|
||||
const ls2 = getCardLeaderSkill(Cards[leader2id], searchTypeArray);
|
||||
const ls1 = getCardLeaderSkills(Cards[leader1id], searchTypeArray)[0];
|
||||
const ls2 = getCardLeaderSkills(Cards[leader2id], searchTypeArray)[0];
|
||||
|
||||
function getSkillAddCombo(skill) {
|
||||
if (!skill) return 0;
|
||||
|
@ -731,8 +732,8 @@ function tIf_Effect_addCombo(leader1id, leader2id) {
|
|||
//计算队伍的追打
|
||||
function tIf_Effect_inflicts(leader1id, leader2id) {
|
||||
const searchTypeArray = [199, 200, 201];
|
||||
const ls1 = getCardLeaderSkill(Cards[leader1id], searchTypeArray);
|
||||
const ls2 = getCardLeaderSkill(Cards[leader2id], searchTypeArray);
|
||||
const ls1 = getCardLeaderSkills(Cards[leader1id], searchTypeArray)[0];
|
||||
const ls2 = getCardLeaderSkills(Cards[leader2id], searchTypeArray)[0];
|
||||
|
||||
function getSkillFixedDamage(skill) {
|
||||
if (!skill) return 0;
|
||||
|
@ -752,8 +753,8 @@ function tIf_Effect_inflicts(leader1id, leader2id) {
|
|||
//计算队伍操作时间
|
||||
function countMoveTime(team, leader1id, leader2id, teamIdx) {
|
||||
const searchTypeArray = [178, 15, 185];
|
||||
const ls1 = getCardLeaderSkill(Cards[leader1id], searchTypeArray);
|
||||
const ls2 = getCardLeaderSkill(Cards[leader2id], searchTypeArray);
|
||||
const ls1 = getCardLeaderSkills(Cards[leader1id], searchTypeArray)[0];
|
||||
const ls2 = getCardLeaderSkills(Cards[leader2id], searchTypeArray)[0];
|
||||
const time1 = leaderSkillMoveTime(ls1);
|
||||
const time2 = leaderSkillMoveTime(ls2);
|
||||
|
||||
|
@ -845,6 +846,7 @@ function countMoveTime(team, leader1id, leader2id, teamIdx) {
|
|||
function getReduceScale(ls, allAttr = false, noHPneed = false, noProbability = false) {
|
||||
const sk = ls.params;
|
||||
let scale = 0;
|
||||
const searchTypeArray = [16, 17, 36, 38, 43, 129, 163, 130, 131, 151, 169, 198, 170, 182, 193, 171, 183];
|
||||
switch (ls.type) {
|
||||
case 16: //无条件盾
|
||||
scale = sk[0] / 100;
|
||||
|
|
Loading…
Reference in New Issue