1、修订转生、超转生搜索

2、修订像素、转生超转生血量计算
3、修订队伍血量算法
This commit is contained in:
枫谷剑仙 2020-09-04 21:21:45 +08:00
parent 322a8b398b
commit 98145005c7
2 changed files with 19 additions and 10 deletions

View File

@ -3021,6 +3021,7 @@ function parseBigNumber(number)
{name:"指定队伍队员进化类型",function:cards=>cards.filter(card=>{
const searchType = 203;
const skill = Skills[card.leaderSkillId];
if (!skill) console.log(card,card.leaderSkillId);
if (skill.type == searchType)
return true;
else if (skill.type == 138){
@ -3093,9 +3094,9 @@ function parseBigNumber(number)
})},
{name:"======进化类型======",function:cards=>cards},
{name:"8格潜觉",function:cards=>cards.filter(card=>card.is8Latent)},
{name:"8格潜觉-转生、超转生",function:cards=>cards.filter(card=>card.is8Latent && !card.isUltEvo && !card.awakenings.includes(49))},
{name:"8格潜觉-转生、超转生",function:cards=>cards.filter(card=>isReincarnated(card))}, //evoBaseId可能为0
{name:"8格潜觉-超究极进化",function:cards=>cards.filter(card=>card.is8Latent && card.isUltEvo && !card.awakenings.includes(49))},
{name:"仅限超转生",function:cards=>cards.filter(card=>!card.isUltEvo && !card.awakenings.includes(49) && card.evoBaseId != card.id && Cards[card.evoBaseId].is8Latent && !Cards[card.evoBaseId].isUltEvo)},
{name:"仅限超转生",function:cards=>cards.filter(card=>isReincarnated(card) && !Cards[card.evoBaseId].isUltEvo)},
{name:"非8格潜觉",function:cards=>cards.filter(card=>!card.is8Latent)},
{name:"像素进化",function:cards=>cards.filter(card=>card.evoMaterials.includes(3826))},
{name:"变身前",function:cards=>cards.filter(card=>{

View File

@ -523,6 +523,11 @@ function parseBigNumber(number)
{
return number.toLocaleString();
}
//判断是否是转生和超转生
function isReincarnated(card)
{
return card.is8Latent && !card.isUltEvo && (card.evoBaseId || card.evoRootId) != card.id && (card.awakenings.includes(49) ? isReincarnated(Cards[card.evoBaseId]) : true);
}
//计算队伍中有多少血量
function countTeamHp(memberArr, leader1id, leader2id, solo)
{
@ -532,12 +537,13 @@ function countTeamHp(memberArr, leader1id, leader2id, solo)
let hp = m.ability ? m.ability[0] : 0;
if (!hp) return 0;
const card = Cards[m.id];
hp *= memberHpMul(card,ls1,memberArr,solo);
hp *= memberHpMul(card,ls2,memberArr,solo);
hp = Math.round(hp * memberHpMul(card,ls2,memberArr,solo));
hp = Math.round(hp * memberHpMul(card,ls1,memberArr,solo));
return hp;
});
console.log('单个队伍血量:',mHpArr);
console.log('单个队伍血量:',mHpArr,mHpArr.reduce((p,c)=>p+c));
function memberHpMul(card,ls,memberArr,solo)
{
@ -586,7 +592,7 @@ function countTeamHp(memberArr, leader1id, leader2id, solo)
break;
case 125: //队伍中必须有指定队员
const needMonIdArr = sk.slice(0,5).filter(s=>s>0);
const memberIdArr = memberArr.map(m=>m.id);
const memberIdArr = memberArr.map(m=>m.id); //包括队长,所以不需要筛选出队员
scale = needMonIdArr.every(mid=>memberIdArr.includes(mid)) ? sk[5]/100 : 1;
break;
case 136:
@ -605,20 +611,22 @@ function countTeamHp(memberArr, leader1id, leader2id, solo)
break;
case 175: //队伍组成全为合作
const needCollabIdIdArr = sk.slice(0,3).filter(s=>s>0);
const memberCollabIdArr = memberArr.map(m=>Cards[m.id].collabId);
const memberCollabIdArr = memberArr.slice(1,5).filter(m=>m.id>0).map(m=>Cards[m.id].collabId);
scale = memberCollabIdArr.every(cid=>needCollabIdIdArr.includes(cid)) ? sk[3]/100 : 1;
break;
case 178: case 185:
scale = hpMul({attrs:flags(sk[1]),types:flags(sk[2])}, sk[3]);
break;
case 203:
case 203: //队员为指定类型不包括双方队长且队员数大于0
let trueMemberCardsArr = memberArr.slice(1,5).filter(m=>m.id>0).map(m=>Cards[m.id]);
switch (sk[0])
{
case 0: //全是像素进化
scale = memberArr.map(m=>Cards[m.id].evoMaterials).every(ems=>ems.includes(3826)) ? sk[1]/100 : 1;
scale = (trueMemberCardsArr.length>0 && trueMemberCardsArr.every(card=>card.evoMaterials.includes(3826))) ? sk[1]/100 : 1;
break;
case 2: //全是转生、超转生8格潜觉
scale = memberArr.map(m=>Cards[m.id].is8Latent).every(is8=>is8) ? sk[1]/100 : 1;
scale = (trueMemberCardsArr.length>0 && trueMemberCardsArr.every(card=>isReincarnated(card))) ? sk[1]/100 : 1;
console.log(trueMemberCardsArr,scale)
break;
}
break;