Merge branch 'master' into skillParser

This commit is contained in:
枫谷剑仙 2021-04-29 22:35:55 +08:00
commit e138a2e20f
25 changed files with 425 additions and 234 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

View File

@ -12,6 +12,9 @@ Use back to undo the last edit.
* 拖拽怪物头像即可快速交换位置或复制怪物,也支持手机触屏。
Drag monster avatars to quickly swap positions or copy monster, also supports mobile touch screen.
![切换位置](document/tips-interchangeCard.png)
* 如果你希望使用技能切换队长使用切换按钮。这样可以保留原始队长强调边框和76版面图标。
If you want switch leader by skill, use the switch button. This preserves the original leader accent border, and the 76 board icon.
![切换位置](document/tips-switch-leader.png)
* 可以在编辑界面的怪物ID输入**怪物名称**或**标签**来搜索怪物。(键入回车以执行)
You can search for monsters by entering the **Monster Name** or **Tags** in the monster ID of the editing interface.(Type Enter to execute)
![搜索怪物名称](document/tips-search-name.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 479 KiB

After

Width:  |  Height:  |  Size: 576 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

View File

@ -1184,7 +1184,8 @@ function parseSkillDescription(skill) {
if (!atSameTime) str+=`${sk[1]}种属性以上`;
else if(sk[0] == 31) str += `5色`;
str += `同时攻击时`;
if (sk[2] && sk[2] !== 100) str += `,所有宠物的${getFixedHpAtkRcvString({atk:sk[2]})}`;
if (sk[2] && sk[2] !== 100 || sk[4]) str += `,所有宠物的攻击力×${sk[2]/100}`;
if (sk[4]) str += `每多1种属性+${sk[4]/100}倍,最大${sk[1] + (sk[5] - 1)}种属性时${(sk[5] - 1) * sk[4]/100 + sk[2]/100}`;
if (sk[3]) str += `,受到的伤害减少${sk[3]}%`;
break;
case 171:
@ -1326,7 +1327,7 @@ function parseSkillDescription(skill) {
if (sk[3]) str += `,结算时连击数+${sk[3]}`;
break;
case 193:
str = `以L字形消除5个${getOrbsAttrString(sk[0])}宝珠时`;
str = `以L字形消除5个${getOrbsAttrString(sk[0], true)}宝珠时`;
if (sk[1] && sk[1] != 100 || sk[2] && sk[2] != 100) str+=`,所有宠物的${getFixedHpAtkRcvString({atk:sk[1],rcv:sk[2]})}`;
if (sk[3]) str+=`,受到的伤害减少${sk[3]}%`;
break;
@ -3724,7 +3725,7 @@ function parseSkillDescription(skill) {
}
}),addition:card=>{
const searchTypeArray = [0,1,2,35,37,42,58,59,84,85,86,87,110,115,143,144];
const skill = getCardSkill(card, searchTypeArray);
const skill = getCardActiveSkill(card, searchTypeArray);
const sk = skill.params;
const colors = [getCannonAttr(skill)];

View File

@ -1 +1 @@
[{"code":"ja","ckey":{"card":"d67bce748f4f9a21ffdbbbdda8f5e954","skill":"90de76ed858236283c3375b28d1908de"},"updateTime":1619201587645},{"code":"en","ckey":{"card":"9fe908706553186f9fb8bca48935b595","skill":"1b8982bce6fc6abe9755d0837a924f14"},"updateTime":1619172877295},{"code":"ko","ckey":{"card":"9f403c9f5aa33c7802018a707df30c12","skill":"ec626f8a8fff38b226eb548e47010f98"},"updateTime":1619172877295}]
[{"code":"ja","ckey":{"card":"7254c298c20793b6f32e93617321402e","skill":"2843e33804cbaba901d63d2c845c7512"},"updateTime":1619620693417},{"code":"en","ckey":{"card":"44892244addbf437b235786fad5c3671","skill":"eed4c071f5f27d1c9632d281a31c88ff"},"updateTime":1619608552303},{"code":"ko","ckey":{"card":"5d3c6444335028d1de242a16c3120d4e","skill":"b490b046001fba6bae38d95abe6647c3"},"updateTime":1619608552303}]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -165,7 +165,8 @@ var formation = new Formation(teamsCount,5);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
@ -176,7 +177,8 @@ var formation = new Formation(teamsCount,5);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
@ -187,7 +189,8 @@ var formation = new Formation(teamsCount,5);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
@ -198,7 +201,8 @@ var formation = new Formation(teamsCount,5);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
@ -209,7 +213,8 @@ var formation = new Formation(teamsCount,5);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
</ul>
@ -285,7 +290,8 @@ var formation = new Formation(teamsCount,5);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
@ -297,7 +303,8 @@ var formation = new Formation(teamsCount,5);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
@ -309,7 +316,8 @@ var formation = new Formation(teamsCount,5);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
@ -321,7 +329,8 @@ var formation = new Formation(teamsCount,5);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
@ -333,7 +342,8 @@ var formation = new Formation(teamsCount,5);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
</ul>
@ -353,7 +363,8 @@ var formation = new Formation(teamsCount,5);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
@ -365,7 +376,8 @@ var formation = new Formation(teamsCount,5);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
@ -377,7 +389,8 @@ var formation = new Formation(teamsCount,5);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
@ -389,7 +402,8 @@ var formation = new Formation(teamsCount,5);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-1 team-leader null">
@ -401,7 +415,8 @@ var formation = new Formation(teamsCount,5);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
</ul>
@ -476,7 +491,8 @@ var formation = new Formation(teamsCount,5);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
@ -487,7 +503,8 @@ var formation = new Formation(teamsCount,5);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
@ -498,7 +515,8 @@ var formation = new Formation(teamsCount,5);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
@ -509,7 +527,8 @@ var formation = new Formation(teamsCount,5);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-1 null">
@ -520,7 +539,8 @@ var formation = new Formation(teamsCount,5);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
</ul>

View File

@ -874,8 +874,8 @@ function countMoveTime(team, leader1id, leader2id, teamIdx) {
team[1].concat()
];
//把队伍2的队长和武器添加到复制的队伍1里面
team[0].push(team2[0][0]);
team[1].push(team2[1][0]);
team[0].push(team2[0][team2[3]]);
team[1].push(team2[1][team2[3]]);
}
//觉醒

369
script.js
View File

@ -240,9 +240,11 @@ var Formation = function(teamCount, memberCount) {
this.teams = [];
for (let ti = 0; ti < teamCount; ti++) {
const team = [
[],
[], 0
]; //第三个是徽章
[], //队员
[], //辅助
0, //徽章
0, //队长更换序号
];
for (let mi = 0; mi < memberCount; mi++) {
team[0].push(new MemberTeam());
team[1].push(new MemberAssist());
@ -263,6 +265,7 @@ Formation.prototype.outObj = function() {
m.outObj()
).DeleteLatter();
if (t[2]) teamArr[2] = t[2];
if (t[3]) teamArr[3] = t[3];
return teamArr;
});
obj.v = dataStructure;
@ -284,7 +287,8 @@ Formation.prototype.loadObj = function(f) {
t[1].forEach(function(m, mi) {
m.loadObj(null);
});
if (t[2] != undefined) t.splice(2);
t[2] = 0;
t[3] = 0;
});
return;
}
@ -303,7 +307,8 @@ Formation.prototype.loadObj = function(f) {
const fm = tf[1][mi];
m.loadObj(fm, dataVeision);
});
if (tf[2] != undefined) t[2] = tf[2]; //徽章
t[2] = tf[2] || 0; //徽章
t[3] = tf[3] || 0; //队长
}
});
if (f.b)
@ -1038,6 +1043,159 @@ function initialize() {
allMembers.push(m);
});
});
//从怪物头像获取队员的队伍编号
function getMemberArrayIndexFromMonHead(headDom) {
return [
parseInt(headDom.getAttribute("data-team"), 10), //team
parseInt(headDom.getAttribute("data-assist"), 10), //assist
parseInt(headDom.getAttribute("data-index"), 10), //index
];
}
//编辑界面点击每个怪物的头像的处理
function clickMonHead(e) {
const arr = getMemberArrayIndexFromMonHead(this);
editMon(arr[0], arr[1], arr[2]);
return false; //没有false将会打开链接
}
//编辑界面每个怪物的头像的拖动
function dragStartMonHead(e) {
e.dataTransfer.setData('from', JSON.stringify(getMemberArrayIndexFromMonHead(this)));
}
//编辑界面每个怪物的头像的经过,阻止事件发生
function dropOverMonHead(e) {
e.preventDefault();
}
//编辑界面每个怪物的头像的放下
function dropMonHead(e) {
const dataFrom = JSON.parse(e.dataTransfer.getData('from'));
const dataTo = getMemberArrayIndexFromMonHead(this);
if ((dataTo[0] !== dataFrom[0]) ||
(dataTo[1] !== dataFrom[1]) ||
(dataTo[2] !== dataFrom[2])) { //必须有所不同才继续交换
interchangeCard(dataFrom, dataTo);
}
return false; //没有false将会打开链接
}
//移动端编辑界面每个怪物的头像的放下
function touchstartMonHead(e) {
e.stopPropagation();
//console.log("开始触摸",e,this);
const tc = e.changedTouches[0];
const pX = tc.pageX,
pY = tc.pageY;
interchangeSVG.style.display = "none";
interchangeSVG.changePoint({ x: pX, y: pY }, { x: pX, y: pY });
}
//移动端编辑界面每个怪物的头像的移动
function touchmoveMonHead(e) {
//console.log("移动中",e,this);
const tc = e.changedTouches[0];
const pX = tc.pageX,
pY = tc.pageY;
const rect = this.getBoundingClientRect();
const top = rect.top + document.documentElement.scrollTop;
const left = rect.left + document.documentElement.scrollLeft;
if ((pY < top) || (pY > (top + rect.height)) ||
(pX < left) || (pX > (left + rect.width))) {
interchangeSVG.style.display = "block";
interchangeSVG.changePoint(null, { x: pX, y: pY });
} else {
interchangeSVG.style.display = "none";
}
}
//移动端编辑界面每个怪物的头像的结束
function touchendMonHead(e) {
const tc = e.changedTouches[0];
const pX = tc.pageX,
pY = tc.pageY;
//console.log("移动结束",pX,pY,e,this);
interchangeSVG.style.display = "none";
interchangeSVG.changePoint(null, { x: pX, y: pY });
const target = allMembers.find(m => {
const rect = m.getBoundingClientRect();
const top = rect.top + document.documentElement.scrollTop;
const left = rect.left + document.documentElement.scrollLeft;
const isInRect = (pY > top) && (pY < (top + rect.height)) &&
(pX > left) && (pX < (left + rect.width));
return isInRect;
});
if (target && this != target) {
//console.log("找到的对象",targets[0]);
const dataFrom = getMemberArrayIndexFromMonHead(this);
const dataTo = getMemberArrayIndexFromMonHead(target);
if ((dataTo[0] != dataFrom[0]) ||
(dataTo[1] != dataFrom[1]) ||
(dataTo[2] != dataFrom[2])) { //必须有所不同才继续交换
interchangeCard(dataFrom, dataTo);
}
}
}
//移动端编辑界面每个怪物的头像的取消
function touchcancelMonHead(e) {
interchangeSVG.style.display = "none";
console.log("移动取消", e, this);
}
function interchangeCard(formArr, toArr) {
function changeType(member, isAssist) {
if (member.id == 0 || (isAssist && member.id == -1)) {
return new Member();
} else {
const newMember = isAssist ? new MemberTeam() : new MemberAssist();
newMember.loadFromMember(member);
return newMember;
}
}
const changeSwapToCopy = controlBox.querySelector("#change-swap-to-copy"); //储存交换“复制”和“替换”
const isCopy = changeSwapToCopy.checked;
let from = formation.teams[formArr[0]][formArr[1]][formArr[2]];
let to = formation.teams[toArr[0]][toArr[1]][toArr[2]];
if (formArr[1] != toArr[1]) //从武器拖到非武器才改变类型
{
from = changeType(from, formArr[1]);
if (!isCopy) to = changeType(to, toArr[1]);
} else if (isCopy) {
const newFrom = new from.constructor();
newFrom.loadFromMember(from);
from = newFrom;
}
formation.teams[toArr[0]][toArr[1]][toArr[2]] = from;
if (!isCopy) formation.teams[formArr[0]][formArr[1]][formArr[2]] = to;
creatNewUrl(); //刷新URL
refreshAll(formation); //刷新全部
}
function switchLeader(e)
{
const headDom = this.parentNode;
const arr = getMemberArrayIndexFromMonHead(headDom);
const team = formation.teams[arr[0]];
if (team[3] > 0) //如果队伍已经换了队长
{
if (team[3] == arr[2]) //点的就是换的队长
{
team[3] = 0; //还原
}else
{
team[3] = arr[2]; //改变成任何能点的换队长
}
creatNewUrl(); //刷新URL
refreshAll(formation); //刷新全部
}else //如果队伍没有换队长
{
if(arr[2] > 0) //如果点的不是原队长
{
team[3] = arr[2]; //接换成新队长
creatNewUrl(); //刷新URL
refreshAll(formation); //刷新全部
}
}
e.stopPropagation();
e.preventDefault();
}
//所有怪物头像,添加拖动交换的代码
allMembers.forEach(m => {
//点击
@ -1052,6 +1210,8 @@ function initialize() {
m.ontouchmove = touchmoveMonHead;
m.ontouchend = touchendMonHead;
m.ontouchcancel = touchcancelMonHead;
//子元素
m.querySelector(".switch-leader").onclick = switchLeader;
});
//添加徽章
@ -2280,130 +2440,6 @@ function initialize() {
}
}
//从怪物头像获取队员的队伍编号
function getMemberArrayIndexFromMonHead(headDom) {
return [
parseInt(headDom.getAttribute("data-team"), 10), //team
parseInt(headDom.getAttribute("data-assist"), 10), //assist
parseInt(headDom.getAttribute("data-index"), 10), //index
];
}
//编辑界面点击每个怪物的头像的处理
function clickMonHead(e) {
const arr = getMemberArrayIndexFromMonHead(this);
editMon(arr[0], arr[1], arr[2]);
return false; //没有false将会打开链接
}
//编辑界面每个怪物的头像的拖动
function dragStartMonHead(e) {
e.dataTransfer.setData('from', JSON.stringify(getMemberArrayIndexFromMonHead(this)));
}
//编辑界面每个怪物的头像的经过,阻止事件发生
function dropOverMonHead(e) {
e.preventDefault();
}
//编辑界面每个怪物的头像的放下
function dropMonHead(e) {
const dataFrom = JSON.parse(e.dataTransfer.getData('from'));
const dataTo = getMemberArrayIndexFromMonHead(this);
if ((dataTo[0] !== dataFrom[0]) ||
(dataTo[1] !== dataFrom[1]) ||
(dataTo[2] !== dataFrom[2])) { //必须有所不同才继续交换
interchangeCard(dataFrom, dataTo);
}
return false; //没有false将会打开链接
}
//移动端编辑界面每个怪物的头像的放下
function touchstartMonHead(e) {
e.stopPropagation();
//console.log("开始触摸",e,this);
const tc = e.changedTouches[0];
const pX = tc.pageX,
pY = tc.pageY;
interchangeSVG.style.display = "none";
interchangeSVG.changePoint({ x: pX, y: pY }, { x: pX, y: pY });
}
//移动端编辑界面每个怪物的头像的移动
function touchmoveMonHead(e) {
//console.log("移动中",e,this);
const tc = e.changedTouches[0];
const pX = tc.pageX,
pY = tc.pageY;
const rect = this.getBoundingClientRect();
const top = rect.top + document.documentElement.scrollTop;
const left = rect.left + document.documentElement.scrollLeft;
if ((pY < top) || (pY > (top + rect.height)) ||
(pX < left) || (pX > (left + rect.width))) {
interchangeSVG.style.display = "block";
interchangeSVG.changePoint(null, { x: pX, y: pY });
} else {
interchangeSVG.style.display = "none";
}
}
//移动端编辑界面每个怪物的头像的结束
function touchendMonHead(e) {
const tc = e.changedTouches[0];
const pX = tc.pageX,
pY = tc.pageY;
//console.log("移动结束",pX,pY,e,this);
interchangeSVG.style.display = "none";
interchangeSVG.changePoint(null, { x: pX, y: pY });
const target = allMembers.find(m => {
const rect = m.getBoundingClientRect();
const top = rect.top + document.documentElement.scrollTop;
const left = rect.left + document.documentElement.scrollLeft;
const isInRect = (pY > top) && (pY < (top + rect.height)) &&
(pX > left) && (pX < (left + rect.width));
return isInRect;
});
if (target && this != target) {
//console.log("找到的对象",targets[0]);
const dataFrom = getMemberArrayIndexFromMonHead(this);
const dataTo = getMemberArrayIndexFromMonHead(target);
if ((dataTo[0] != dataFrom[0]) ||
(dataTo[1] != dataFrom[1]) ||
(dataTo[2] != dataFrom[2])) { //必须有所不同才继续交换
interchangeCard(dataFrom, dataTo);
}
}
}
//移动端编辑界面每个怪物的头像的取消
function touchcancelMonHead(e) {
interchangeSVG.style.display = "none";
console.log("移动取消", e, this);
}
function interchangeCard(formArr, toArr) {
function changeType(member, isAssist) {
if (member.id == 0 || (isAssist && member.id == -1)) {
return new Member();
} else {
const newMember = isAssist ? new MemberTeam() : new MemberAssist();
newMember.loadFromMember(member);
return newMember;
}
}
const changeSwapToCopy = controlBox.querySelector("#change-swap-to-copy"); //储存交换“复制”和“替换”
const isCopy = changeSwapToCopy.checked;
let from = formation.teams[formArr[0]][formArr[1]][formArr[2]];
let to = formation.teams[toArr[0]][toArr[1]][toArr[2]];
if (formArr[1] != toArr[1]) //从武器拖到非武器才改变类型
{
from = changeType(from, formArr[1]);
if (!isCopy) to = changeType(to, toArr[1]);
} else if (isCopy) {
const newFrom = new from.constructor();
newFrom.loadFromMember(from);
from = newFrom;
}
formation.teams[toArr[0]][toArr[1]][toArr[2]] = from;
if (!isCopy) formation.teams[formArr[0]][formArr[1]][formArr[2]] = to;
creatNewUrl(); //刷新URL
refreshAll(formation); //刷新全部
}
//改变一个怪物头像
function changeid(mon, monDom, latentDom) {
let fragment = document.createDocumentFragment(); //创建节点用的临时空间
@ -2545,7 +2581,7 @@ function changeid(mon, monDom, latentDom) {
}
}
const skillCdDom = monDom.querySelector(".skill");
const skillCdDom = monDom.querySelector(".skill-cd");
if (skillCdDom) //如果存在技能CD DOM
{
//const skill = Skills[card.activeSkillId];
@ -2556,6 +2592,18 @@ function changeid(mon, monDom, latentDom) {
}
}
const switchLeaderDom = monDom.querySelector(".switch-leader");
if (switchLeaderDom) //如果存在队长交换 DOM
{
const skills = getCardActiveSkills(card, [93]); //更换队长的技能
if (skills.length > 0) {
switchLeaderDom.classList.remove(className_displayNone);
} else {
switchLeaderDom.classList.add(className_displayNone);
}
}
parentNode.appendChild(fragment);
}
//刷新潜觉
@ -2987,14 +3035,47 @@ function refreshAll(formationData) {
const teamMenberAwokenDom = teamBigBox.querySelector(".team-menber-awoken"); //队员觉醒
const teamAssistAwokenDom = teamBigBox.querySelector(".team-assist-awoken"); //辅助觉醒
for (let ti = 0, ti_len = membersDom.querySelectorAll(".member").length; ti < ti_len; ti++) {
const member = membersDom.querySelector(`.member-${ti+1} .monster`);
const latent = latentsDom.querySelector(`.latents-${ti+1} .latent-ul`);
const assist = assistsDom.querySelector(`.member-${ti+1} .monster`);
//开始设置换队长
const leaderIdx = teamData[3];
const memberLi = membersDom.querySelector(`.member-${ti+1}`);
const latentLi = latentsDom.querySelector(`.latents-${ti+1}`);
const assistsLi = assistsDom.querySelector(`.member-${ti+1}`);
const teamAbilityLi = teamAbilityDom ? teamAbilityDom.querySelector(`.abilitys-${ti+1}`) : undefined;
const teamMenberAwokenLi = teamAbilityDom ? teamMenberAwokenDom.querySelector(`.menber-awoken-${ti+1}`) : undefined;
const teamAssistAwokenLi = teamAbilityDom ? teamAssistAwokenDom.querySelector(`.menber-awoken-${ti+1}`) : undefined;
[memberLi,latentLi,assistsLi,teamAbilityLi,teamMenberAwokenLi,teamAssistAwokenLi].forEach(dom=>{
if (!dom)
{
return;
}
if (leaderIdx > 0 && ti == 0)
{
dom.style.transform = `translateX(${leaderIdx*108}px)`;
}
else if (leaderIdx > 0 && ti == leaderIdx)
{
dom.style.transform = `translateX(${ti*-108}px)`;
}else
{
dom.style.transform = null;
}
});
//修改显示内容
const member = memberLi.querySelector(`.monster`);
const assist = assistsLi.querySelector(`.monster`);
const latent = latentLi.querySelector(`.latent-ul`);
changeid(teamData[0][ti], member, latent); //队员
changeid(teamData[1][ti], assist); //辅助
//如果换队长技能
if (leaderIdx == 0 && (ti == 0 || ti == 5))
{
member.querySelector(".switch-leader").classList.add(className_displayNone);
assist.querySelector(".switch-leader").classList.add(className_displayNone);
}
refreshMemberSkillCD(teamBox, teamData, ti); //技能CD
refreshAbility(teamAbilityDom, teamData, ti); //本人能力值
refreshMenberAwoken(teamMenberAwokenDom, teamAssistAwokenDom, teamData, ti); //本人觉醒
}
const teamTotalInfoDom = teamBigBox.querySelector(".team-total-info"); //队伍能力值合计
if (teamTotalInfoDom) refreshTeamTotalHP(teamTotalInfoDom, teamData, teamNum);
@ -3237,8 +3318,8 @@ function refreshTeamTotalHP(totalDom, team, teamIdx) {
const teams = formation.teams;
const leader1id = team[0][0].id;
const leader2id = teamsCount===2 ? (teamIdx === 1 ? teams[0][0][0].id : teams[1][0][0].id) : team[0][5].id;
const leader1id = team[0][team[3] || 0].id;
const leader2id = teamsCount===2 ? (teamIdx === 1 ? teams[0][0][teams[0][3] || 0].id : teams[1][0][teams[1][3] || 0].id) : team[0][5].id;
if (tHpDom) {
const reduceScales1 = getReduceScales(leader1id);
@ -3322,7 +3403,10 @@ function refreshTeamTotalHP(totalDom, team, teamIdx) {
if (tEffectDom) {
const _76board = tEffectDom.querySelector("._76board");
if (tIf_Effect_76board(leader1id,leader2id))
//76版队长技能不被欢队长所影响
const leader1id_original = team[0][0].id;
const leader2id_original = teamsCount===2 ? (teamIdx === 1 ? teams[0][0][0].id : teams[1][0][0].id) : team[0][5].id;
if (tIf_Effect_76board(leader1id_original,leader2id_original))
{
_76board.classList.remove(className_displayNone);
}else
@ -3375,8 +3459,8 @@ function refreshFormationTotalHP(totalDom, teams) {
const tEffectDom = totalDom.querySelector(".tIf-effect");
//因为目前仅用于2P所以直接在外面固定写了
const leader1id = teams[0][0][0].id;
const leader2id = teams[1][0][0].id;
const leader1id = teams[0][0][teams[0][3] || 0].id;
const leader2id = teams[1][0][teams[1][3] || 0].id;
if (tHpDom) {
@ -3442,7 +3526,10 @@ function refreshFormationTotalHP(totalDom, teams) {
if (tEffectDom) {
const _76board = tEffectDom.querySelector("._76board");
if (tIf_Effect_76board(leader1id,leader2id))
//76版队长技能不被欢队长所影响
const leader1id_original = teams[0][0][0].id;
const leader2id_original = teams[1][0][0].id;
if (tIf_Effect_76board(leader1id_original,leader2id_original))
{
_76board.classList.remove(className_displayNone);
}else
@ -3499,8 +3586,8 @@ function refreshMemberSkillCD(teamDom, team, idx) {
const assistCard = Cards[assist.id] || Cards[0];
const assistSkill = Skills[assistCard.activeSkillId];
const memberSkillCdDom = memberMonDom.querySelector(".skill");
const assistSkillCdDom = assistMonDom.querySelector(".skill");
const memberSkillCdDom = memberMonDom.querySelector(".skill-cd");
const assistSkillCdDom = assistMonDom.querySelector(".skill-cd");
const memberSkillCd = memberSkill ? (memberSkill.initialCooldown - (member.skilllevel || memberSkill.maxLevel) + 1) : 0;
const assistSkillCd = assistSkill ? (assistSkill.initialCooldown - (assist.skilllevel || assistSkill.maxLevel) + 1) : 0;

View File

@ -111,7 +111,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
@ -122,7 +123,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
@ -133,7 +135,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
@ -144,7 +147,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
@ -155,7 +159,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 null">
@ -166,7 +171,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
</ul>
@ -254,7 +260,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
@ -266,7 +273,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
@ -278,7 +286,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
@ -290,7 +299,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
@ -302,7 +312,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 team-leader null">
@ -314,7 +325,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
</ul>

View File

@ -502,11 +502,11 @@ ul{
/*.monster .id::before{
content: "No.";
}*/
.monster .skill::before{
.monster .skill-cd::before{
content:"CD";
font-size: 10px;
}
.monster .skill{
.monster .skill-cd{
font-size: 13px;
line-height: 13px;
color:white;
@ -515,12 +515,33 @@ ul{
right:0;
bottom:0;
}
.monster .skill.max-skill{
.monster .skill-cd.max-skill{
display: none;
}
.show-mon-skill-cd .monster .skill.max-skill{
.show-mon-skill-cd .monster .skill-cd.max-skill{
display: block;
}
/*交换队长技的图标*/
.monster .switch-leader
{
position: absolute;
right: 0px;
bottom: 17px;
width: 23px;
height: 25px;
background-image: url(images/icon-switch-leader.png);
background-position: center;
background-repeat: no-repeat;
}
.monster .switch-leader:hover
{
box-shadow: red 0 0 5px;
}
.monster .switch-leader:active
{
animation: icon-active 0.2s;
}
.not-show-awoken-count .formation-box .team-total-info, /*单个队伍血量统计*/
.not-show-awoken-count .formation-box .team-ability, /*单个队伍三维*/
.not-show-awoken-count .formation-box .team-awoken, /*单个队伍觉醒统计*/
@ -701,7 +722,6 @@ ul{
.tIf-total-hp .reduce .awoken-bind::before,
.tIf-total-move .general::before,
.tIf-total-move .awoken-bind::before,
.tIf-total-move.fixed-move-time::after,
.tIf-effect icon::before,
icon.poison-no-effect::after,
.hp-range-table th::before
@ -821,6 +841,19 @@ icon.poison-no-effect::after,
.tIf-total-move.fixed-move-time{
position: relative;
}
.tIf-total-move.fixed-move-time::after {
content: " ";
display: inline-block;
width: 32px;
height: 32px;
background-image: url(images/latent.png);
background-position-x: -32px;
transform: scale(0.5);
position: absolute;
left: 0;
top: 0;
}
@keyframes hidden-visible-animate{
from {
opacity: 1;
@ -829,7 +862,6 @@ icon.poison-no-effect::after,
opacity: 0;
}
}
.tIf-total-move.fixed-move-time::after,
icon.poison-no-effect::after
{
background-image: url(images/icon-bind.png);

View File

@ -126,7 +126,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
@ -137,7 +138,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
@ -148,7 +150,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
@ -159,7 +162,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
@ -170,7 +174,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 null">
@ -181,7 +186,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
</ul>
@ -269,7 +275,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
@ -281,7 +288,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
@ -293,7 +301,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
@ -305,7 +314,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
@ -317,7 +327,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 team-leader null">
@ -329,7 +340,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
</ul>
@ -547,7 +559,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
@ -558,7 +571,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
@ -569,7 +583,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
@ -580,7 +595,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
@ -591,7 +607,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 null">
@ -602,7 +619,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
</ul>
@ -690,7 +708,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
@ -702,7 +721,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
@ -714,7 +734,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
@ -726,7 +747,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
@ -738,7 +760,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 team-leader null">
@ -750,7 +773,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
</ul>
@ -968,7 +992,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
@ -979,7 +1004,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
@ -990,7 +1016,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
@ -1001,7 +1028,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
@ -1012,7 +1040,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 null">
@ -1023,7 +1052,8 @@ var formation = new Formation(teamsCount,6);
<div class="awoken-count-num"></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
</ul>
@ -1111,7 +1141,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
@ -1123,7 +1154,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
@ -1135,7 +1167,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
@ -1147,7 +1180,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
@ -1159,7 +1193,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 team-leader null">
@ -1171,7 +1206,8 @@ var formation = new Formation(teamsCount,6);
<div class="super-awoken display-none"><div class="awoken-icon"></div></div>
<div class="level"></div>
<div class="id"></div>
<div class="skill"></div>
<div class="skill-cd"></div>
<div class="switch-leader display-none"></div>
</a>
</li>
</ul>