Browse Source

临时3

tags/v8.0
枫谷剑仙 6 years ago
parent
commit
2e23a2e5aa
7 changed files with 142 additions and 87 deletions
  1. +7
    -4
      languages/zh-CN.css
  2. +4
    -3
      multi.html
  3. +105
    -67
      script.js
  4. +4
    -4
      solo.html
  5. +13
    -4
      style.css
  6. +8
    -5
      triple.html
  7. +1
    -0
      universal_function.js

+ 7
- 4
languages/zh-CN.css View File

@@ -132,8 +132,11 @@
.edit-box .button-box .button-done.cant-assist::after{
content: "不能辅助";
}
.awoken-total-box::before{
content: "觉醒总计:";
.formation-awoken::before{
content: "阵型觉醒总计:";
}
.team-awoken::before{
content: "队伍觉醒总计:";
}
.type-name-4::after{
content: "龍";
@@ -204,10 +207,10 @@
.control-box .btn-show-mon-skill-cd::before{
content: "❄️显示已满技能冷却";
}
.team-info .tIf-total-hp::before{
.tIf-total-hp::before{
content: "总HP(队伍觉醒和徽章):";
}
.team-info .tIf-total-rcv::before{
.tIf-total-rcv::before{
content: "总回复(队伍觉醒和徽章):";
}



+ 4
- 3
multi.html View File

@@ -13,8 +13,8 @@
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript">
const solo = false;
const teamsNumber = 2;
var formation = new Formation(teamsNumber,5);
const teamsCount = 2;
var formation = new Formation(teamsCount,5);
</script>
</head>
@@ -36,6 +36,7 @@ var formation = new Formation(teamsNumber,5);
</div>
<div class="formation-box">
<div class="title-box"><input type="text" class="title" placeholder="输入队伍标题" /></div>
<div class="formation-total-info"><div class="tIf-total-hp"></div><div class="tIf-total-rcv"></div></div>
<ul class="teams">
<li class="team-bigbox team-1 show-team-name-right">
<div class="team-box-name">
@@ -412,7 +413,7 @@ var formation = new Formation(teamsNumber,5);
</div>
</li>
</ul>
<div class="awoken-total-box">
<div class="formation-awoken">
<!--怪物觉醒-->
<ul class="awoken-ul">
<li class="awoken-count display-none"><span class="awoken-icon awoken-21"></span><span class="count"></span></li><!--SB-->


+ 105
- 67
script.js View File

@@ -494,7 +494,7 @@ function initialize()
{
teamBadge.classList.remove(className_ChoseBadges);
formation.badge = bidx;
refreshTotalAbility(formation.team[0]);
refreshTotalHP(formation.team[0]);
creatNewUrl();
}else
{
@@ -941,7 +941,8 @@ function initialize()
return;
}
let mon = editBox.isAssist?new MemberAssist():new MemberTeam();
formation.team[editBox.memberIdx[0]][editBox.memberIdx[1]][editBox.memberIdx[2]] = mon;
const thisTeamData = formation.team[editBox.memberIdx[0]];
thisTeamData[editBox.memberIdx[1]][editBox.memberIdx[2]] = mon;

mon.id = parseInt(monstersID.value,10);
const card = Cards[mon.id] || Cards[0];
@@ -987,20 +988,25 @@ function initialize()
}
changeid(mon,editBox.monsterHead,editBox.memberIdx[1] ? null : editBox.latentBox);

const formationAbilityDom = document.querySelector(".formation-box .formation-ability");
if (formationAbilityDom)
const thisTeamData = formation.team[editBox.memberIdx[0]];
const thisTeamBBDom = teamBigBoxs[editBox.memberIdx[0]];
const teamAbilityDom = thisTeamBBDom.querySelector(".team-ability");
if (teamAbilityDom)
{
refreshAbility(
formationAbilityDom,
teamAbilityDom,
formation.team[editBox.memberIdx[0]],
editBox.memberIdx[2]);
refreshTotalAbility(formation.team[editBox.memberIdx[0]]);
const teamTotalInfoDom = thisTeamBBDom.querySelector(".team-total-info");
if (teamTotalInfoDom) refreshTeamTotalHP(teamTotalInfoDom,thisTeamData);
formation-total-info
refreshTeamTotalHP(formation.team[editBox.memberIdx[0]]);
}
refreshAwokenCount(formation.team);

//刷新改队员的CD
const teamDom = document.querySelector(".formation-box .formation-" + (editBox.memberIdx[0]?"B":"A") + "-box");
refreshSkillCD(teamDom,formation.team[editBox.memberIdx[0]],editBox.memberIdx[2]);
refreshMemberSkillCD(teamDom,formation.team[editBox.memberIdx[0]],editBox.memberIdx[2]);
creatNewUrl();
editBox.hide();
};
@@ -1023,7 +1029,7 @@ function initialize()
formationAbilityDom,
formation.team[editBox.memberIdx[0]],
editBox.memberIdx[2]);
refreshTotalAbility(formation.team[editBox.memberIdx[0]]);
refreshTotalHP(formation.team[editBox.memberIdx[0]]);
}
refreshAwokenCount(formation.team);
creatNewUrl();
@@ -1039,7 +1045,7 @@ function initialize()
formationAbilityDom,
formation.team[editBox.memberIdx[0]],
editBox.memberIdx[2]);
refreshTotalAbility(formation.team[editBox.memberIdx[0]]);
refreshTotalHP(formation.team[editBox.memberIdx[0]]);
}
refreshAwokenCount(formation.team);
creatNewUrl();
@@ -1686,69 +1692,103 @@ function searchColla(collabId)
//刷新整个队伍
function refreshAll(formationData){
let fragment = document.createDocumentFragment(); //创建节点用的临时空间
const formationBox = document.querySelector(".formation-box");
const titleBox = fragment.appendChild(formationBox.querySelector(".title-box"));
const formationA_bigbox = fragment.appendChild(formationBox.querySelector(".formation-A-bigbox"));
const formationB_bigbox = formationBox.querySelector(".formation-B-bigbox");
if (formationB_bigbox)
{fragment.appendChild(formationB_bigbox);}
const awokenTotalBox = fragment.appendChild(formationBox.querySelector(".awoken-total-box"));
const detailBox = fragment.appendChild(formationBox.querySelector(".detail-box"));
const awokenTotalBox = formationBox.querySelector(".awoken-total-box");
const detailBox = formationBox.querySelector(".detail-box");

for (let ni=0; ni < formationBox.childNodes.length; ni++)
{
fragment.appendChild(formationBox.childNodes[ni]);
}

const txtTitle = titleBox.querySelector(".title");
const txtDetail = detailBox.querySelector(".detail");
txtTitle.value = formationData.title || "";
txtDetail.value = formationData.detail || "";
const badges = Array.prototype.slice.call(formationA_bigbox.querySelectorAll(".formation-badge .badge-bg"));
badges.forEach((b,idx)=>{
if (idx==formationData.badge)
{
b.classList.remove("display-none");
}else
teamBigBoxs.forEach((teamBigBox,teamNum)=>{
const badgeBox = teamBigBox.querySelector(".team-badge");
//const badges = Array.prototype.slice.call(badgeBox.querySelectorAll(".badge-radio"));
const badge = badgeBox.querySelector(`#team-${teamNum}-badge-${formationData.badge}`);
badge.checked = true;
});

teamBoxs.forEach((teamBox,teamNum)=>{
const members = teamBox.querySelectorAll(".team-members .monster");
const latents = teamBox.querySelectorAll(".team-latents .latent-ul");
const assist = teamBox.querySelectorAll(".team-assist .monster");
const teamAbilityDom = teamBox.querySelector(".team-ability");
for (let ti=0;ti<members.length;ti++)
{
b.classList.add("display-none");
changeid(formationData.team[teamNum][0][ti],members[ti],latents[ti]);
changeid(formationData.team[teamNum][1][ti],assist[ti]);
if (teamAbilityDom)
{
refreshAbility(teamAbilityDom,formationData.team[teamNum],ti);
}
refreshMemberSkillCD(teamBox,formationData.team[teamNum],ti);
}
const teamTotalInfoBox = teamBox.querySelector(".team-total-info");
if (teamTotalInfoBox) refreshTeamTotalHP(teamTotalInfoBox,formationData.team[teamNum]);
const awokenBox = teamBox.querySelector(".team-awoken");
if (awokenBox) refreshTeamAwokenCount(awokenBox,formationData.team[teamNum]);
});

const formationA = formationA_bigbox.querySelector(".formation-A-box");
const formationB = formationB_bigbox ? formationB_bigbox.querySelector(".formation-B-box") : null;
const fATeam = formationA.querySelectorAll(".formation-team .monster");
const fALatents = formationA.querySelectorAll(".formation-latents .latent-ul");
const fAAssist = formationA.querySelectorAll(".formation-assist .monster");
const fBTeam = formationB ? formationB.querySelectorAll(".formation-team .monster") : null;
const fBLatents = formationB ? formationB.querySelectorAll(".formation-latents .latent-ul") : null;
const fBAssist = formationB ? formationB.querySelectorAll(".formation-assist .monster") : null;

const formationAbilityDom = formationA.querySelector(".formation-ability");
for (let ti=0;ti<(formationB?5:6);ti++)
formationBox.appendChild(fragment);
const formationTotalInfoBox = formationBox.querySelector(".formation-total-info");
if (formationTotalInfoBox == 1) refreshFormationHP(formationData.team[0]);
const formationAwokenBox = formationBox.querySelector(".formation-awoken");
if (formationAwokenBox) refreshFormationAwokenCount(formationAwokenBox,formationData.team);
txtDetail.onblur(); //这个需要放在显示出来后再改才能生效
}
//刷新队伍觉醒统计
function refreshTeamAwokenCount(awokenDom,team){
let fragment = document.createDocumentFragment(); //创建节点用的临时空间
const awokenUL = fragment.appendChild(awokenDom.querySelector(".awoken-ul"));
function setCount(idx,number){
var aicon = awokenUL.querySelector(".awoken-" + idx);
if (!aicon) return; //没有这个觉醒就撤回
var ali = aicon.parentNode;
var countDom = ali.querySelector(".count");
countDom.innerHTML = number;
if (number)
ali.classList.remove("display-none");
else
ali.classList.add("display-none");
}
var bigAwoken = [52,53,56,68,69,70]; //等于几个小觉醒的大觉醒
for (var ai=1;ai<=72;ai++)
{
changeid(formationData.team[0][0][ti],fATeam[ti],fALatents[ti]);
changeid(formationData.team[0][1][ti],fAAssist[ti]);
if (formationAbilityDom)
if (ai == 10) //防封
{
refreshAbility(
formationAbilityDom,
formationData.team[0],
ti);
}
refreshSkillCD(formationA,formationData.team[0],ti);
if (formationB)
setCount(ai,awokenCountInFormation(teams,ai,solo)+awokenCountInFormation(teams,52,solo)*2);
}else if (ai == 11) //防暗
{
setCount(ai,awokenCountInFormation(teams,ai,solo)+awokenCountInFormation(teams,68,solo)*5);
}else if (ai == 12) //防废
{
setCount(ai,awokenCountInFormation(teams,ai,solo)+awokenCountInFormation(teams,69,solo)*5);
}else if (ai == 13) //防毒
{
setCount(ai,awokenCountInFormation(teams,ai,solo)+awokenCountInFormation(teams,70,solo)*5);
}else if (ai == 19) //手指
{
setCount(ai,awokenCountInFormation(teams,ai,solo)+awokenCountInFormation(teams,53,solo)*2);
}else if (ai == 21) //SB
{
setCount(ai,awokenCountInFormation(teams,ai,solo)+awokenCountInFormation(teams,56,solo)*2);
}else if (bigAwoken.indexOf(ai)>=0) //属于大觉醒
{
changeid(formationData.team[1][0][ti],fBTeam[ti],fBLatents[ti]);
changeid(formationData.team[1][1][ti],fBAssist[ti]);
refreshSkillCD(formationB,formationData.team[1],ti);
continue;
}else
{
setCount(ai,awokenCountInFormation(teams,ai,solo));
}
}
formationBox.appendChild(fragment);
refreshTotalAbility(formationData.team[0]);
refreshAwokenCount(formationData.team);
txtDetail.onblur(); //这个需要放在显示出来后再改才能生效
awokenTotalBox.appendChild(awokenUL);
}
//刷新觉醒总
function refreshAwokenCount(teams){
//刷新几个队伍觉醒统计
function refreshFormationAwokenCount(teams){
let fragment = document.createDocumentFragment(); //创建节点用的临时空间
const awokenTotalBox = formationBox.querySelector(".awoken-total-box");
const awokenUL = fragment.appendChild(awokenTotalBox.querySelector(".awoken-ul"));
@@ -1831,11 +1871,10 @@ function refreshAbility(abilityDom,team,idx){
}
});
}
//刷新能力值合计
function refreshTotalAbility(team){
//刷新队伍能力值合计
function refreshTeamTotalHP(totalDom,team){
//计算总的生命值
const formationBox = document.querySelector(".formation-box");
const teamInfo = formationBox.querySelector(".team-info");
const teamInfo = formationBox.querySelector(".team-total-info");
if (!teamInfo) return;
const tHpDom = teamInfo.querySelector(".tIf-total-hp");
const tRcvDom = teamInfo.querySelector(".tIf-total-rcv");
@@ -1874,11 +1913,10 @@ function refreshTotalAbility(team){
("("+Math.round(tRCV * (1 + 0.10 * teamRCVAwoken)*badgeRCVScale).toString()+")") :
"");
}
//刷新能力值合计
function refreshTotalAbility(team){
//刷新所有队伍能力值合计
function refreshFormationTotalHP(teams){
//计算总的生命值
const formationBox = document.querySelector(".formation-box");
const teamInfo = formationBox.querySelector(".team-info");
const teamInfo = formationBox.querySelector(".team-total-info");
if (!teamInfo) return;
const tHpDom = teamInfo.querySelector(".tIf-total-hp");
const tRcvDom = teamInfo.querySelector(".tIf-total-rcv");
@@ -1917,10 +1955,10 @@ function refreshTotalAbility(team){
("("+Math.round(tRCV * (1 + 0.10 * teamRCVAwoken)*badgeRCVScale).toString()+")") :
"");
}
//刷新技能CD
function refreshSkillCD(teamDom,team,idx){
const memberMonDom = teamDom.querySelector(".formation-team .member-" + (idx+1) + " .monster");
const assistMonDom = teamDom.querySelector(".formation-assist .member-" + (idx+1) + " .monster");
//刷新单人技能CD
function refreshMemberSkillCD(teamDom,team,idx){
const memberMonDom = teamDom.querySelector(`.team-members .member-${idx+1} .monster`);
const assistMonDom = teamDom.querySelector(`.team-assist .member-${idx+1} .monster`);
const member = team[0][idx];
const assist = team[1][idx];



+ 4
- 4
solo.html View File

@@ -13,8 +13,8 @@
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript">
const solo = true;
const teamsNumber = 1;
var formation = new Formation(teamsNumber,6);
const teamsCount = 1;
var formation = new Formation(teamsCount,6);
</script>
<style type="text/css">
.formation-A-bigbox::after{
@@ -57,7 +57,7 @@ var formation = new Formation(teamsNumber,6);
<input type="radio" name="team-0-badge" class="badge-radio" value="11" id="team-0-badge-11"><label class="badge-bg" for="team-0-badge-11"><div class="badge badge-11"></div></label>
<input type="radio" name="team-0-badge" class="badge-radio" value="12" id="team-0-badge-12"><label class="badge-bg" for="team-0-badge-12"><div class="badge badge-12"></div></label>
<input type="radio" name="team-0-badge" class="badge-radio" value="13" id="team-0-badge-13"><label class="badge-bg" for="team-0-badge-13"><div class="badge badge-13"></div></label>
<div class="team-info"><div class="tIf-total-hp"></div><div class="tIf-total-rcv"></div></div>
<div class="team-total-info"><div class="tIf-total-hp"></div><div class="tIf-total-rcv"></div></div>
</ul>
<div class="team-box-name">
<div class="team-box">
@@ -299,7 +299,7 @@ var formation = new Formation(teamsNumber,6);
</ul>
</div>
</div>
<div class="awoken-box">
<div class="team-awoken">
<!--怪物觉醒-->
<ul class="awoken-ul">
<li class="awoken-count display-none"><span class="awoken-icon awoken-1"></span><span class="count"></span></li><!--HP+-->


+ 13
- 4
style.css View File

@@ -414,14 +414,21 @@ ul{
display: inline-block;
}


.formation-box .team-info{
.formation-box .formation-total-info,
.formation-box .team-total-info
{
font-size: 15px;
vertical-align: bottom;
}
.formation-box .team-badge .team-total-info
{
display:inline-block;
}
/*
.team-info .tIf-total-hp,.team-info .tIf-total-rcv{
display:inline-block;
}

*/
/*队伍的潜觉*/
.team-latents .latents{
width: 108px;
@@ -1128,7 +1135,9 @@ ul{
.edit-box .button-box .button-done.cant-assist::after{
content: "不能辅助";
}*/
.awoken-total-box::before{
.formation-awoken::before,
.team-awoken::before
{
font-size: 20px;
margin-top:5px;
/*content: "觉醒总计:";*/


+ 8
- 5
triple.html View File

@@ -13,8 +13,8 @@
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript">
const solo = false;
const teamsNumber = 3;
var formation = new Formation(teamsNumber,6);
const teamsCount = 3;
var formation = new Formation(teamsCount,6);
</script>
</head>
@@ -38,6 +38,7 @@ var formation = new Formation(teamsNumber,6);
<div class="title-box"><input type="text" class="title" placeholder="输入队伍标题" /></div>
<ul class="teams">
<li class="team-bigbox team-1 show-team-name-left">
<div class="team-total-info"><div class="tIf-total-hp"></div><div class="tIf-total-rcv"></div></div>
<div class="team-box-name">
<div class="team-box">
<ul class="team-assist">
@@ -258,7 +259,7 @@ var formation = new Formation(teamsNumber,6);
</ul>
</div>
</div>
<div class="awoken-box">
<div class="team-awoken">
<!--怪物觉醒-->
<ul class="awoken-ul">
<li class="awoken-count display-none"><span class="awoken-icon awoken-21"></span><span class="count"></span></li><!--SB-->
@@ -272,6 +273,7 @@ var formation = new Formation(teamsNumber,6);
</div>
</li>
<li class="team-bigbox team-2 show-team-name-left">
<div class="team-total-info"><div class="tIf-total-hp"></div><div class="tIf-total-rcv"></div></div>
<div class="team-box-name">
<div class="team-box">
<ul class="team-assist">
@@ -492,7 +494,7 @@ var formation = new Formation(teamsNumber,6);
</ul>
</div>
</div>
<div class="awoken-box">
<div class="team-awoken">
<!--怪物觉醒-->
<ul class="awoken-ul">
<li class="awoken-count display-none"><span class="awoken-icon awoken-21"></span><span class="count"></span></li><!--SB-->
@@ -506,6 +508,7 @@ var formation = new Formation(teamsNumber,6);
</div>
</li>
<li class="team-bigbox team-3 show-team-name-left">
<div class="team-total-info"><div class="tIf-total-hp"></div><div class="tIf-total-rcv"></div></div>
<div class="team-box-name">
<div class="team-box">
<ul class="team-assist">
@@ -726,7 +729,7 @@ var formation = new Formation(teamsNumber,6);
</ul>
</div>
</div>
<div class="awoken-box">
<div class="team-awoken">
<!--怪物觉醒-->
<ul class="awoken-ul">
<li class="awoken-count display-none"><span class="awoken-icon awoken-21"></span><span class="count"></span></li><!--SB-->


+ 1
- 0
universal_function.js View File

@@ -208,6 +208,7 @@ function calculateAbility(monid = 0, level = 1, plus = [0,0,0], awoken = 0, late
});
return abilitys;
}
//搜索卡片用
function searchCards(cards,attr1,attr2,fixMainColor,types,awokens,sawokens)
{
let res = cards;


Loading…
Cancel
Save