加入队伍SB的计算

This commit is contained in:
枫谷剑仙 2022-07-11 20:13:58 +08:00
parent 34bf9457e3
commit 213dd413fe
7 changed files with 124 additions and 11 deletions

BIN
images/icon-sb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 852 B

View File

@ -93,6 +93,9 @@ var formation = new Formation(teamsCount,5);
<div class="title-box edit"><input type="text" class="title" placeholder="输入队伍标题" /><h1 class="title-display"></h1></div>
<div class="dungeon-enchance"></div>
<div class="formation-total-info">
<div class="tIf-total-skill-boost">
<span class="general"></span>
</div>
<div class="tIf-total-hp">
<span class="general"></span>
<span class="awoken-bind"></span>
@ -864,6 +867,15 @@ var formation = new Formation(teamsCount,5);
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="93" data-max-count="1"></button><!--附加木属性--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="94" data-max-count="1"></button><!--附加光属性--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="95" data-max-count="1"></button><!--附加暗属性--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="96"></button><!--大U--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="97"></button><!--大5色溜--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="98"></button><!--大自回--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="99"></button><!--大火+--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="100"></button><!--大水+--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="101"></button><!--大木+--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="102"></button><!--大光+--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="103"></button><!--大暗+--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="104"></button><!--大心+--></li>
</ul>
</div>
<div class="sawoken-div"><!--超觉醒-->
@ -964,6 +976,15 @@ var formation = new Formation(teamsCount,5);
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="93" id="search-awoken-93" /><label class="awoken-icon unallowable-awoken" data-awoken-icon="93" for="search-awoken-93"></label><!--附加木属性--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="94" id="search-awoken-94" /><label class="awoken-icon unallowable-awoken" data-awoken-icon="94" for="search-awoken-94"></label><!--附加光属性--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="95" id="search-awoken-95" /><label class="awoken-icon unallowable-awoken" data-awoken-icon="95" for="search-awoken-95"></label><!--附加暗属性--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="96" id="search-awoken-96" /><label class="awoken-icon" data-awoken-icon="96" for="search-awoken-96"></label><!--大U--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="97" id="search-awoken-97" /><label class="awoken-icon" data-awoken-icon="97" for="search-awoken-97"></label><!--大5色溜--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="98" id="search-awoken-98" /><label class="awoken-icon" data-awoken-icon="98" for="search-awoken-98"></label><!--大自回--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="99" id="search-awoken-99" /><label class="awoken-icon" data-awoken-icon="99" for="search-awoken-99"></label><!--大火+--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="100" id="search-awoken-100" /><label class="awoken-icon" data-awoken-icon="100" for="search-awoken-100"></label><!--大水+--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="101" id="search-awoken-101" /><label class="awoken-icon" data-awoken-icon="101" for="search-awoken-101"></label><!--大木+--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="102" id="search-awoken-102" /><label class="awoken-icon" data-awoken-icon="102" for="search-awoken-102"></label><!--大光+--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="103" id="search-awoken-103" /><label class="awoken-icon" data-awoken-icon="103" for="search-awoken-103"></label><!--大暗+--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="104" id="search-awoken-104" /><label class="awoken-icon" data-awoken-icon="104" for="search-awoken-104"></label><!--大心+--></li>
</ul>
</div>
<div class="special-div">
@ -1162,6 +1183,7 @@ var formation = new Formation(teamsCount,5);
<li class="latent-icon" data-latent-icon="41"></li><!--U解禁消-->
<li class="latent-icon" data-latent-icon="42"></li><!--伤害上限解除-->
<li class="latent-icon" data-latent-icon="46"></li><!--心追解云封-->
<li class="latent-icon" data-latent-icon="47"></li><!--心L大SB-->
</ul>
</div>
<div class="setting-row row-mon-skill">

View File

@ -1219,20 +1219,27 @@ function getActuallySkills(skill, skillTypes, searchRandom = true) {
return [];
}
}
//返回变身宠的初级
function henshinBase(cardid, firstId)
{
let member;
if (cardid instanceof Member) {
member = cardid;
cardid = member.id;
}
if (firstId == undefined) firstId = cardid;
let card = Cards[cardid];
if (card && Array.isArray(card.henshinFrom) && card.henshinFrom[0] !== firstId
&& (member?.level ?? 1) <= card.maxLevel
)
{
card = henshinBase(card.henshinFrom[0], firstId);
}
return card;
}
//计算队伍是否为76
function tIf_Effect_76board(leader1id, leader2id) {
const searchTypeArray = [162, 186];
function henshinBase(cardid, firstId)
{
if (firstId == undefined) firstId = cardid;
let card = Cards[cardid];
if (card && Array.isArray(card.henshinFrom) && card.henshinFrom[0] !== firstId)
{
card = henshinBase(card.henshinFrom[0], firstId);
}
return card;
}
const ls1 = getCardLeaderSkills(henshinBase(leader1id), searchTypeArray)[0];
const ls2 = getCardLeaderSkills(henshinBase(leader2id), searchTypeArray)[0];
@ -1309,6 +1316,37 @@ function getSkillFixedDamage(card) {
return 0;
}
}
//计算队伍SB
function countTeamSB(team, solo) {
let sbn = 0;
const badge = team[2];
for (let mi = 0; mi < team[0].length; mi++) {
const member = team[0][mi];
const assist = team[1][mi];
if (member.id < 0) continue;
const memberCard = henshinBase(member);
let enableAwoken = memberCard.awakenings.slice(0, member.awoken);
//单人、3人时,大于等于100级且297时增加超觉醒
if ((solo || teamsCount === 3) && member.sawoken >= 0 && member.level >= 100 && member.plus.every(p=>p>=99)) {
const sAwokenT = memberCard.superAwakenings[member.sawoken];
if (sAwokenT >= 0)
enableAwoken = enableAwoken.concat(sAwokenT);
}
if (assist.card && assist.card.enabled && assist.card.awakenings.includes(49)) { //如果卡片未启用
enableAwoken = enableAwoken.concat(assist.card.awakenings.slice(0, assist.awoken));
}
//大SB 56小SB 21
sbn += enableAwoken.filter(n=>n===21).length;
sbn += enableAwoken.filter(n=>n===56).length * 2;
//心L 59心L大SB潜觉 47
sbn += enableAwoken.filter(n=>n===59).length ? member.latent.filter(n=>n===47).length * 3 : 0;
}
if ((solo || teamsCount === 3) && badge === 7) sbn += 1;
return sbn;
}
//计算队伍操作时间
function countMoveTime(team, leader1id, leader2id, teamIdx) {
const searchTypeArray = [178, 15, 185];

View File

@ -4734,6 +4734,7 @@ function refreshTeamTotalHP(totalDom, team, teamIdx) {
//计算总的生命值
if (!totalDom) return;
const tHpDom = totalDom.querySelector(".tIf-total-hp");
const tSBDom = totalDom.querySelector(".tIf-total-skill-boost");
const tMoveDom = totalDom.querySelector(".tIf-total-move");
const tEffectDom = totalDom.querySelector(".tIf-effect");
@ -4810,6 +4811,13 @@ function refreshTeamTotalHP(totalDom, team, teamIdx) {
setTextContentAndAttribute(tHpDom_reduce.querySelector(".awoken-bind"), tReduceHPNoAwoken.bigNumberToString());
}
if (tSBDom) {
const sbn = countTeamSB(team, solo);
const tSBDom_general = tSBDom.querySelector(".general");
setTextContentAndAttribute(tSBDom_general, sbn);
}
if (tMoveDom) {
const moveTime = countMoveTime(team, leader1id, leader2id, teamIdx);
const tMoveDom_general = tMoveDom.querySelector(".general");
@ -4917,6 +4925,7 @@ function refreshFormationTotalHP(totalDom, teams) {
//计算总的生命值
if (!totalDom) return;
const tHpDom = totalDom.querySelector(".tIf-total-hp");
const tSBDom = totalDom.querySelector(".tIf-total-skill-boost");
const tEffectDom = totalDom.querySelector(".tIf-effect");
//因为目前仅用于2P所以直接在外面固定写了
@ -4984,6 +4993,14 @@ function refreshFormationTotalHP(totalDom, teams) {
setTextContentAndAttribute(tHpDom_reduce.querySelector(".general"), tReduceHP.bigNumberToString());
setTextContentAndAttribute(tHpDom_reduce.querySelector(".awoken-bind"), tReduceHPNoAwoken.bigNumberToString());
}
if (tSBDom) {
const sbn1 = countTeamSB(teams[0], solo);
const sbn2 = countTeamSB(teams[1], solo);
const tSBDom_general = tSBDom.querySelector(".general");
setTextContentAndAttribute(tSBDom_general, sbn1 + sbn2);
}
if (tEffectDom) {
const _76board = tEffectDom.querySelector("._76board");

View File

@ -135,6 +135,9 @@ var formation = new Formation(teamsCount,6);
<canvas height="20" width="100" class="reduce-details display-none"></canvas>
</span>
</div>
<div class="tIf-total-skill-boost">
<span class="general"></span>
</div>
<div class="tIf-total-move">
<span class="general"></span>
<span class="awoken-bind"></span>

View File

@ -783,6 +783,7 @@ ul{
display: inline-block;
}
/*各种信息统计的图标*/
.tIf-total-skill-boost,
.tIf-total-move,
.tIf-effect
{
@ -793,6 +794,7 @@ ul{
.tIf-total-hp .reduce .reduce-scale::before,
.tIf-total-hp .reduce .general::before,
.tIf-total-hp .reduce .awoken-bind::before,
.tIf-total-skill-boost .general::before,
.tIf-total-move .general::before,
.tIf-total-move .awoken-bind::before,
.tIf-effect icon::before,
@ -899,6 +901,9 @@ icon.poison-no-effect::after,
background-color: purple;
}
.tIf-total-skill-boost .general::before{
background-image: url(images/icon-sb.png);
}
.tIf-total-move .general::before{
background-image: url(images/icon-orb-move-time.png);
}

View File

@ -150,6 +150,9 @@ var formation = new Formation(teamsCount,6);
<canvas height="20" width="100" class="reduce-details display-none"></canvas>
</span>
</div>
<div class="tIf-total-skill-boost">
<span class="general"></span>
</div>
<div class="tIf-total-move">
<span class="general"></span>
<span class="awoken-bind"></span>
@ -626,6 +629,9 @@ var formation = new Formation(teamsCount,6);
<canvas height="20" width="100" class="reduce-details display-none"></canvas>
</span>
</div>
<div class="tIf-total-skill-boost">
<span class="general"></span>
</div>
<div class="tIf-total-move">
<span class="general"></span>
<span class="awoken-bind"></span>
@ -1102,6 +1108,9 @@ var formation = new Formation(teamsCount,6);
<canvas height="20" width="100" class="reduce-details display-none"></canvas>
</span>
</div>
<div class="tIf-total-skill-boost">
<span class="general"></span>
</div>
<div class="tIf-total-move">
<span class="general"></span>
<span class="awoken-bind"></span>
@ -1699,6 +1708,15 @@ var formation = new Formation(teamsCount,6);
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="93" data-max-count="1"></button><!--附加木属性--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="94" data-max-count="1"></button><!--附加光属性--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="95" data-max-count="1"></button><!--附加暗属性--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="96"></button><!--大U--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="97"></button><!--大5色溜--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="98"></button><!--大自回--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="99"></button><!--大火+--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="100"></button><!--大水+--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="101"></button><!--大木+--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="102"></button><!--大光+--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="103"></button><!--大暗+--></li>
<li class="awoken-count"><button class="awoken-icon" data-awoken-icon="104"></button><!--大心+--></li>
</ul>
</div>
<div class="sawoken-div"><!--超觉醒-->
@ -1799,6 +1817,15 @@ var formation = new Formation(teamsCount,6);
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="93" id="search-awoken-93" /><label class="awoken-icon unallowable-awoken" data-awoken-icon="93" for="search-awoken-93"></label><!--附加木属性--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="94" id="search-awoken-94" /><label class="awoken-icon unallowable-awoken" data-awoken-icon="94" for="search-awoken-94"></label><!--附加光属性--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="95" id="search-awoken-95" /><label class="awoken-icon unallowable-awoken" data-awoken-icon="95" for="search-awoken-95"></label><!--附加暗属性--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="96" id="search-awoken-96" /><label class="awoken-icon" data-awoken-icon="96" for="search-awoken-96"></label><!--大U--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="97" id="search-awoken-97" /><label class="awoken-icon" data-awoken-icon="97" for="search-awoken-97"></label><!--大5色溜--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="98" id="search-awoken-98" /><label class="awoken-icon" data-awoken-icon="98" for="search-awoken-98"></label><!--大自回--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="99" id="search-awoken-99" /><label class="awoken-icon" data-awoken-icon="99" for="search-awoken-99"></label><!--大火+--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="100" id="search-awoken-100" /><label class="awoken-icon" data-awoken-icon="100" for="search-awoken-100"></label><!--大水+--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="101" id="search-awoken-101" /><label class="awoken-icon" data-awoken-icon="101" for="search-awoken-101"></label><!--大木+--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="102" id="search-awoken-102" /><label class="awoken-icon" data-awoken-icon="102" for="search-awoken-102"></label><!--大光+--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="103" id="search-awoken-103" /><label class="awoken-icon" data-awoken-icon="103" for="search-awoken-103"></label><!--大暗+--></li>
<li class="awoken-count"><input type="checkbox" class="sawoken-check" name="types" value="104" id="search-awoken-104" /><label class="awoken-icon" data-awoken-icon="104" for="search-awoken-104"></label><!--大心+--></li>
</ul>
</div>
<div class="special-div">
@ -1997,6 +2024,7 @@ var formation = new Formation(teamsCount,6);
<li class="latent-icon" data-latent-icon="41"></li><!--U解禁消-->
<li class="latent-icon" data-latent-icon="42"></li><!--伤害上限解除-->
<li class="latent-icon" data-latent-icon="46"></li><!--心追解云封-->
<li class="latent-icon" data-latent-icon="47"></li><!--心L大SB-->
</ul>
</div>
<div class="setting-row row-mon-skill">