Browse Source

加入新队长技能的计算

tags/v26.2
枫谷剑仙 3 years ago
parent
commit
b47ffa1012
3 changed files with 20 additions and 4 deletions
  1. +11
    -1
      script-json_data.js
  2. +7
    -1
      script-universal_function.js
  3. +2
    -2
      service-worker.js

+ 11
- 1
script-json_data.js View File

@@ -710,6 +710,9 @@ const specialSearchFunctions = (function() {
case 203: case 217:
scale = sk[1]/100;
break;
case 245:
scale = sk[3]/100;
break;
case 138: //调用其他队长技
scale = sk.reduce((pmul,skid)=>pmul * getHPScale(Skills[skid]),1);
break;
@@ -1131,7 +1134,7 @@ const specialSearchFunctions = (function() {
function healImmediately_Rate(card)
{
const searchTypeArray = [7, //宠物回复力
const searchTypeArray = [7, //自身回复力
8, //固定点数
35,115, //吸血
117
@@ -3588,6 +3591,13 @@ const specialSearchFunctions = (function() {
{name:"After Henshin",otLangName:{chs:"变身后",cht:"變身後"},
function:cards=>cards.filter(card=>Array.isArray(card.henshinFrom))
},
{name:"Random Henshin",otLangName:{chs:"随机变身",cht:"隨機變身"},
function:cards=>cards.filter(card=>{
const searchTypeArray = [236];
const skill = getCardActiveSkill(card, searchTypeArray);
return skill;
})
},
{name:"Except Before Henshin(No Henshin+After Henshin)",otLangName:{chs:"除了变身前(非变身+变身后)",cht:"除了變身前(非變身+變身后)"},
function:cards=>cards.filter(card=>!Array.isArray(card.henshinTo))
},


+ 7
- 1
script-universal_function.js View File

@@ -989,7 +989,7 @@ function countTeamHp(team, leader1id, leader2id, solo, noAwoken = false) {
case 158:
scale = hpMul({ attrs: flags(sk[1]), types: flags(sk[2]) }, sk[4]);
break;
case 175: //队伍组成全为合作
case 175: //队伍组成全为合作,不包括双方队长
const needCollabIdIdArr = sk.slice(0, 3).filter(s => s > 0);
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;
@@ -1029,6 +1029,12 @@ function countTeamHp(team, leader1id, leader2id, solo, noAwoken = false) {
console.debug('属性、类型个数动态倍率,当前队长HP倍率为 %s (匹配 %d 次)', scale, correTimes);
break;
}
case 245: { //全员满足某种情况,不包括好友队长,现在是全部星级不一样
let cardsRarity = memberArr.slice(0, 5).filter(m => m.id > 0).map(m => m.card.rarity); //所有的卡片星级
if (new Set(cardsRarity).size === cardsRarity.length) //如果星级去重后数量一致,即各不相同
scale = sk[3] / 100;
break;
}
case 138: //调用其他队长技
scale = sk.reduce((pmul, skid) => pmul * memberHpMul(member, assist, Skills[skid], memberArr, solo), 1)
break;


+ 2
- 2
service-worker.js View File

@@ -6411,7 +6411,7 @@ const cachesMap = new Map([
],
[
"script-json_data.js",
"eee1fbbcdb27dfcd85dfb999dec34893"
"d28f5e59828817e8b4714567c0362a7b"
],
[
"script-skill-parser.js",
@@ -6419,7 +6419,7 @@ const cachesMap = new Map([
],
[
"script-universal_function.js",
"4cb9b257c297c652b00ce78d70d47e82"
"a955fc3128b5eac6c706f68f81b4a542"
],
[
"script.js",


Loading…
Cancel
Save