From 9246a8f3d20f4cba852c30bdf3aebd976d14d18d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=AB=E8=B0=B7=E5=89=91=E4=BB=99?= Date: Wed, 21 Oct 2020 19:26:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=AD=E9=9F=B3=E8=A7=89=E9=86=92=E5=80=8D?= =?UTF-8?q?=E7=8E=87=E5=85=88=E6=9C=9F=E5=90=AF=E7=94=A8=EF=BC=8C=E6=9C=89?= =?UTF-8?q?=E5=BE=85=E6=B8=B8=E6=88=8F=E5=AE=9E=E8=A3=85=E5=90=8E=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/project file/latent.fw.png | Bin 340747 -> 342079 bytes script-universal_function.js | 40 +++++++++++++++++++----------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/images/project file/latent.fw.png b/images/project file/latent.fw.png index b88b2477fd9cd25ef64ff95e0120c764583b9f31..484cd9d9e6feb046ac1faf8a4d4735d6bb39fcb8 100644 GIT binary patch delta 2817 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 TFa)`iLpO&V0tB}m0tN0c1FXZt delta 1475 zcmXYsdooRU(HiMBZV+K1j{N{a^-TmYH&vTy7b3R}Glu7!S2`3ZiM_s-W z6dav9c--~U#~`yh4u>1`eihin8jc!o9-7`*~Gq$BfLa9cIpMekeac+qeFk zdr!O!JWI5jR#h4c8j0tFJLG$2UsPYqFH6|7zN=Zjt==v!->TU3qJg6H*jJ}6!#2nM z@51scER6fzkiS_XeCKg0C4vpSOG+8ImBNp%sG#3o$>#Mbq8iY!fkJg3D6`azDIHv5 zsOZdL;qIqWq@Hj{%}B>-%iH^(OR;6B%@fKR!6P1j{n*javS3_3f5AF3aWFh>UZ#?5 z`64l>xGeDz-0MJ?aIwSZ-jjh zW<;rrHHpVo%16sWQ=8`d0fgA%NJHn{ky_fJ30Yzf-s31F_p1ol3t z=9ZRi5&5?9Qo=|xRl`ie$zrtsZF$uFr|fJj`_nQhKxXxYIK{CGk&j0TdB=yvvVgq4 zitfINmtm~MDKCfzo=5ajAP#<=`v9kS!GotjH69kfr2cf{l>4ZtCLgAUFSDJ&n&%`V zTY>N8JW$04&Yy)5nt)l?m2q0y9Zc3r^3wJ=_bz?HK!QHhvdHc9LenQzhvC4QDow?^ zAc^rn56yir8#-Ue#M(@qck{?s{2>QsVcZ^`GPSX?ji-_fBwF8E^bNJ|Ld+_it#Rm& z5O7OnX}5X}2g}QcaoXzR@YNwL21Z4C%9f+RqpJedG@VOagw9(`h*Y|{A7_KbFGO*= z9eZK8_#x6f8`g<^-AdJT?)~qx(4rUU46e7w4peclkB@t3;br`vamtRX-ABZicH7g} zX)5S4)V)#Ld;R1E7Y=q?%q0zOFTxsfnym>2qar6|%Mk<~DKJ#RK-^?{DP5hXWJo%Y zG`Ng`mOP6mMvyej?+Y=nwZq*=rzBIiGN{Eelj77?D!53^$NPL>$b=}d?N_X6p5VJy zn8xCJSoP6V#7W>50={b5P4j+44(0-&uYl@t1|O5klXzpHvYzRdJ4io{c|s@w2o$XY zlWjSV@LJ#iF@9_vq*mU>8ip#PBT-THP3_Knk$f{O0R2;bhs`hrahgq8=tpe9*b5Q+ zgGkDA!hfHhRu>whaa@2`OyAD{dg{V}DUspdB*XXwAH`bj>etx)H|jKS7rfIjX{-a9 z7)jmc`X4?q%E;}7v92~2? YdX^a4FZ~i-(3{ - ab.push({index:63,scale:1.1}); - });*/ if (!solo) { //协力时计算协力觉醒 @@ -310,7 +305,7 @@ function calculateAbility(member, assist = null, solo = true, teamsCount = 1) } //觉醒增加的数值 const n_awoken = awokenList.length>0 ? - Math.round(awokenAdd[idx].reduce(function(previous,aw){ + Math.round(awokenAdd[idx].reduce((previous,aw)=>{ const awokenCount = awokenList.filter(ak=>ak==aw.index).length; //每个觉醒的数量 if (awokenCount>0) return previous + aw.value * awokenCount; @@ -320,7 +315,7 @@ function calculateAbility(member, assist = null, solo = true, teamsCount = 1) 0; //潜觉增加的倍率 const n_latent = (member.latent && member.latent.length>0) ? - Math.round(latentScale[idx].reduce(function(previous,la){ + Math.round(latentScale[idx].reduce((previous,la)=>{ const latentCount = member.latent.filter(l=>l==la.index).length; //每个潜觉的数量 return previous + n_base * la.scale * latentCount; //无加值与觉醒的基础值,乘以那么多个潜觉的增加倍数 },0)) : @@ -329,9 +324,9 @@ function calculateAbility(member, assist = null, solo = true, teamsCount = 1) let reValue = n_base + n_plus + n_awoken + n_latent + (n_assist_base + n_assist_plus) * bonusScale[idx]; let reValueNoAwoken = Math.round(n_base + n_plus + (n_assist_base + n_assist_plus) * bonusScale[idx]); - //协力觉醒的倍率 - reValue = Math.round(awokenScale[idx].reduce(function(previous,aw){ - const awokenCount = awokenList.filter(ak=>ak==aw.index).length; //每个协力觉醒的数量 + //觉醒生效时的倍率 + reValue = Math.round(awokenScale[idx].reduce((previous,aw)=>{ + const awokenCount = awokenList.filter(ak=>ak==aw.index).length; //每个倍率觉醒的数量 if (awokenCount>0) { return previous * Math.pow(aw.scale,awokenCount); @@ -342,6 +337,23 @@ function calculateAbility(member, assist = null, solo = true, teamsCount = 1) } },reValue)); + if (currentDataSource.code=="ja") + { + //觉醒无效时的倍率 —— 计算顺序可能不对,这里只作为初步设置 + const awokenScale_noAwoken = awokenScale.map(arr=>arr.filter(obj=>obj.index == 63)); //筛选出在无觉醒情况下依然生效的倍率觉醒,目前只有63语音觉醒 + reValueNoAwoken = Math.round(awokenScale_noAwoken[idx].reduce((previous,aw)=>{ + const awokenCount = awokenList.filter(ak=>ak==aw.index).length; //每个倍率觉醒的数量 + if (awokenCount>0) + { + return previous * Math.pow(aw.scale,awokenCount); + } + else + { + return previous; + } + },reValueNoAwoken)); + } + if (idx<2 && reValue<1) reValue = 1; //HP和ATK最低为1 return [reValue,reValueNoAwoken]; });