完成账号数据储存和队伍读取功能

This commit is contained in:
枫谷剑仙 2021-09-06 03:31:34 +08:00
parent 67fa292467
commit e13de12011
17 changed files with 956 additions and 343 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 163 KiB

View File

@ -608,4 +608,11 @@ label[for="qr-data-type-pdchu"]::before {
.dialog-dungeon-enchance .stats-list::before
{
content: "Enhancement Rate:";
}
.badge[data-badge-icon='1']::before,
.badge[data-badge-icon='3']::before,
.badge[data-badge-icon='10']::before,
.badge[data-badge-icon='20']::before
{
background-position-x: -36px;
}

View File

@ -15,11 +15,6 @@
{
background-position-x: -252px;
}
.badge[data-badge-icon='0']::before,
.badge[data-badge-icon='2']::before
{
background-position-x: -36px;
}
.tIf-total-hp .awoken-bind::before,
.tIf-total-move .awoken-bind::before,

View File

@ -5,9 +5,10 @@
{
background-position-x: calc(-32px * 2);
}
.badge[data-badge-icon='0']::before,
.badge[data-badge-icon='14']::before,
.badge[data-badge-icon='18']::before
.badge[data-badge-icon='1']::before,
.badge[data-badge-icon='10']::before,
.badge[data-badge-icon='20']::before,
.badge[data-badge-icon='51']::before
{
background-position-x: calc(-36px * 2);
background-position-x: calc(-36px * 3);
}

View File

@ -566,4 +566,13 @@ label[for="qr-data-type-pdchu"]::before {
.dialog-dungeon-enchance .stats-list::before
{
content: "배율을 강화합니다:";
}
.badge[data-badge-icon='1']::before,
.badge[data-badge-icon='20']::before
{
background-position-x: calc(-36px * 2);
}
.badge[data-badge-icon='3']::before
{
background-position-x: -36px;
}

View File

@ -577,4 +577,18 @@ label[for="qr-data-type-pdchu"]::before {
#player-data-frame .upload-data::before
{
content: "\f574 上传数据";
}
.player-card .lvexp::before
{
content: "EXP";
}
.player-card .lvexp .level::before
{
content: "等級";
}
.player-card .stama::before
{
content: "体力";
}

View File

@ -187,8 +187,8 @@ var formation = new Formation(teamsCount,5);
<div class="team-box-name">
<div class="team-box">
<ul class="team-assist">
<li class="member member-1 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="0">
<li class="member member-1">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="0">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -199,8 +199,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="1">
<li class="member member-2">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="1">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -211,8 +211,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="2">
<li class="member member-3">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="2">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -223,8 +223,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="3">
<li class="member member-4">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="3">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -235,8 +235,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="4">
<li class="member member-5">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="4">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -311,8 +311,8 @@ var formation = new Formation(teamsCount,5);
</li>
</ul>
<ul class="team-members">
<li class="member member-1 team-leader null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="0">
<li class="member member-1 team-leader">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="0">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -324,8 +324,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="1">
<li class="member member-2">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="1">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -337,8 +337,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="2">
<li class="member member-3">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="2">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -350,8 +350,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="3">
<li class="member member-4">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="3">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -363,8 +363,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="4">
<li class="member member-5">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="4">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -384,8 +384,8 @@ var formation = new Formation(teamsCount,5);
<div class="team-box-name">
<div class="team-box">
<ul class="team-members">
<li class="member member-2 null">
<a class="monster" target="_blank" data-team="1" data-assist="0" data-index="1">
<li class="member member-2">
<a class="monster null" target="_blank" data-team="1" data-assist="0" data-index="1">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -397,8 +397,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
<a class="monster" target="_blank" data-team="1" data-assist="0" data-index="2">
<li class="member member-3">
<a class="monster null" target="_blank" data-team="1" data-assist="0" data-index="2">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -410,8 +410,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
<a class="monster" target="_blank" data-team="1" data-assist="0" data-index="3">
<li class="member member-4">
<a class="monster null" target="_blank" data-team="1" data-assist="0" data-index="3">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -423,8 +423,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
<a class="monster" target="_blank" data-team="1" data-assist="0" data-index="4">
<li class="member member-5">
<a class="monster null" target="_blank" data-team="1" data-assist="0" data-index="4">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -436,8 +436,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-1 team-leader null">
<a class="monster" target="_blank" data-team="1" data-assist="0" data-index="0">
<li class="member member-1 team-leader">
<a class="monster null" target="_blank" data-team="1" data-assist="0" data-index="0">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -513,8 +513,8 @@ var formation = new Formation(teamsCount,5);
</li>
</ul>
<ul class="team-assist">
<li class="member member-2 null">
<a class="monster" target="_blank" data-team="1" data-assist="1" data-index="1">
<li class="member member-2">
<a class="monster null" target="_blank" data-team="1" data-assist="1" data-index="1">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -525,8 +525,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
<a class="monster" target="_blank" data-team="1" data-assist="1" data-index="2">
<li class="member member-3">
<a class="monster null" target="_blank" data-team="1" data-assist="1" data-index="2">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -537,8 +537,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
<a class="monster" target="_blank" data-team="1" data-assist="1" data-index="3">
<li class="member member-4">
<a class="monster null" target="_blank" data-team="1" data-assist="1" data-index="3">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -549,8 +549,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
<a class="monster" target="_blank" data-team="1" data-assist="1" data-index="4">
<li class="member member-5">
<a class="monster null" target="_blank" data-team="1" data-assist="1" data-index="4">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -561,8 +561,8 @@ var formation = new Formation(teamsCount,5);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-1 null">
<a class="monster" target="_blank" data-team="1" data-assist="1" data-index="0">
<li class="member member-1">
<a class="monster null" target="_blank" data-team="1" data-assist="1" data-index="0">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -951,7 +951,7 @@ var formation = new Formation(teamsCount,5);
</div>
<div class="monsterinfo-box">
<div class="monster-head">
<a class="monster" target="_blank">
<a class="monster null" target="_blank">
<div class="property"></div>
<div class="subproperty"></div>
</a>

View File

@ -398,7 +398,7 @@ const official_awoken_sorting = [
//pdc的徽章对应数字
const pdcBadgeMap = [
{pdf:0,pdc:10}, //无限cost
{pdf:1,pdc:10}, //无限cost
{pdf:2,pdc:12}, //小手指
{pdf:3,pdc:9}, //全体攻击
{pdf:4,pdc:5}, //小回复
@ -407,16 +407,17 @@ const pdcBadgeMap = [
{pdf:7,pdc:8}, //SB
{pdf:8,pdc:18}, //队长防封
{pdf:9,pdc:19}, //SX
{pdf:10,pdc:7}, //无天降
{pdf:11,pdc:7}, //无天降
{pdf:17,pdc:6}, //大回复
{pdf:18,pdc:2}, //大血量
{pdf:19,pdc:4}, //大攻击
{pdf:20,pdc:null}, //三维
{pdf:21,pdc:13}, //大手指
{pdf:10,pdc:11}, //加经验
{pdf:12,pdc:15}, //墨镜
{pdf:13,pdc:17}, //防废
{pdf:14,pdc:16}, //防毒
{pdf:1,pdc:14}, //月卡
{pdf:50,pdc:14}, //月卡
];
//pdc的潜觉对应数字
const pdcLatentMap = [

View File

@ -273,6 +273,76 @@ function fileReader (file, options = {}) {
});
}
function dbReadKey (db, tableName, keys) {
return new Promise(function (resolve, reject) {
const transaction = db.transaction([tableName]);
const objectStore = transaction.objectStore(tableName);
const request = objectStore.get(keys);
request.onsuccess = function(event) {
resolve(request.result);
};
request.onerror = reject;
});
}
function dbCount (db, tableName, key) {
return new Promise(function (resolve, reject) {
const transaction = db.transaction([tableName]);
const objectStore = transaction.objectStore(tableName);
const request = objectStore.count(key);
request.onsuccess = function() {
resolve(request.result);
}
request.onerror = reject;
});
}
function dbReadAll (db, tableName) {
return new Promise(async function (resolve, reject) {
let datas = [];
const transaction = db.transaction([tableName]);
const objectStore = transaction.objectStore(tableName);
const request = objectStore.openCursor();
request.onsuccess = function(event) {
var cursor = event.target.result;
if (cursor) {
// cursor.value 包含正在被遍历的当前记录
// 这里你可以对 result 做些什么
datas.push(cursor.value);
cursor.continue();
} else {
// 没有更多 results
resolve(datas);
}
};
request.onerror = reject;
});
}
function dbWrite (db, tableName, data, keys) {
return new Promise(function (resolve, reject) {
const transaction = db.transaction([tableName], "readwrite");
const objectStore = transaction.objectStore(tableName);
const request = objectStore.put(data, keys);
request.onsuccess = function(event) {
resolve(event);
};
request.onerror = reject;
});
}
function dbDelete (db, tableName, keys) {
return new Promise(function (resolve, reject) {
const transaction = db.transaction([tableName], "readwrite");
const objectStore = transaction.objectStore(tableName);
const request = objectStore.delete(keys);
request.onsuccess = function(event) {
resolve(event);
};
request.onerror = reject;
});
}
function latentUseHole(latentId) {
switch (true) {
case (latentId === 12):
@ -1034,13 +1104,13 @@ function countMoveTime(team, leader1id, leader2id, teamIdx) {
//1人、3人计算徽章
if (solo || teamsCount === 3) {
switch (team[2]) {
case 1: //小手指
case 2: //小手指
moveTime.duration.badge = 1;
break;
case 13: //大手指
case 21: //大手指
moveTime.duration.badge = 2;
break;
case 18: //月卡
case 50: //月卡
moveTime.duration.badge = 3;
break;
}

526
script.js
View File

@ -1,5 +1,6 @@
let Cards = []; //怪物数据
let Skills = []; //技能数据
let PlayerDatas = []; //玩家数据
let currentLanguage; //当前语言
let currentDataSource; //当前数据
@ -16,7 +17,7 @@ let qrcodeReader; //二维码读取
let qrcodeWriter; //二维码输出
let selectedDeviceId; //视频源id
const dataStructure = 3; //阵型输出数据的结构版本
const dataStructure = 4; //阵型输出数据的结构版本
const cfgPrefix = "PADDF-"; //设置名称的前缀
const className_displayNone = "display-none";
const dataAttrName = "data-value"; //用于储存默认数据的属性名
@ -60,7 +61,7 @@ if (currentDataSource == undefined)
const dbName = "PADDF";
let db = null;
const DBOpenRequest = indexedDB.open(dbName,2);
const DBOpenRequest = indexedDB.open(dbName, 4);
DBOpenRequest.onsuccess = function(event) {
db = event.target.result; //DBOpenRequest.result;
@ -80,11 +81,14 @@ DBOpenRequest.onupgradeneeded = function(event) {
let db = event.target.result;
let store;
// 建立一个对象仓库来存储用户的相关信息,我们选择 id 作为键路径key path
// 因为 id 可以保证是不重复的
store = db.createObjectStore("cards");
store = db.createObjectStore("skills");
store = db.createObjectStore("palyer_datas");
switch (true)
{
case event.oldVersion < 2:
store = db.createObjectStore("cards");
store = db.createObjectStore("skills");
case event.oldVersion < 3:
store = db.createObjectStore("palyer_datas", { keyPath: 'name' });
}
// 使用事务的 oncomplete 事件确保在插入数据前对象仓库已经创建完毕
store.transaction.oncomplete = function(event) {
@ -304,7 +308,7 @@ Formation.prototype.loadObj = function(f) {
t[1].forEach(function(m, mi) {
m.loadObj(null);
});
t[2] = 0;
t[2] = 1;
t[3] = 0;
});
dge.rarities.length = 0;
@ -330,10 +334,38 @@ Formation.prototype.loadObj = function(f) {
const fm = tf[1][mi];
m.loadObj(fm, dataVeision);
});
t[2] = tf[2] || 0; //徽章
t[3] = tf[3] || 0; //队长
t[2] = tf[2] != undefined ? (dataVeision > 3 ? tf[2] : badgeConvert(tf[2])) : 1; //徽章
t[3] = tf[3] ?? 0; //队长
}
});
function badgeConvert(old)
{
switch (old)
{
case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8: {
return old + 1;
}
case 9: {
return 11;
}
case 10:case 11:case 12: {
return old + 7;
}
case 13: {
return 21;
}
case 14: {
return 10;
}
case 15:case 16:case 17: {
return old - 3;
}
case 18: {
return 50;
}
default: return 1;
}
}
if (f.r)
{
if (Array.isArray(f.r[0])) {
@ -452,6 +484,158 @@ Formation.prototype.getQrStr = function(type)
}
}
class PlayerData
{
constructor(data)
{
Object.assign(this, data);
this.parsedCards = PlayerDataCard.parseDataArray(data.card);
this.parsedDecks = PlayerDataDeck.parseDataArray(
data.decksb.decks,
data?.decksbs?.decks,
this.parsedCards);
}
}
class PlayerDataDeck {
constructor(data, parsedCards) {
const e = data.entries();
this.membersIndex = [
e.next().value[1],
e.next().value[1],
e.next().value[1],
e.next().value[1],
e.next().value[1],
];
this.badge = e.next().value[1];
this.membersIndex.push(e.next().value[1]);
if (parsedCards)
{
this.members = this.membersIndex.map(id=>id===0 ? null : parsedCards.find(m=>m.index === id));
}
e.next(); //未知
e.next(); //未知
if (!e.next().done)
{
console.warn("出现未知的用户队伍数据");
}
}
static parseDataArray(decks1, decks2, parsedCards)
{
let datas = decks1.concat(decks2 ?? []);
let decks = datas.map(deck=>new PlayerDataDeck(deck, parsedCards));
if (Boolean(decks2))
{
decks.forEach(deck=>{if (deck.badge === 1) deck.badge = 50;});
}
return decks;
}
toFormation()
{
const f = new Formation(1, 6);
const team = f.teams[0];
team[2] = this.badge;
const tMembers = team[0];
const tAssists = team[1];
this.members.forEach((member, idx)=>{
const tm = tMembers[idx];
const ta = tAssists[idx];
if (member) {
tm.loadFromMember(member);
tm.sawoken = Cards[member.id].superAwakenings.indexOf(member.superAwoken);
tm.plus = Object.values(member.plus);
if (member.assist) {
ta.loadFromMember(member.assist);
ta.sawoken = Cards[member.assist.id].superAwakenings.indexOf(member.assist.superAwoken);
ta.plus = Object.values(member.assist.plus);
}
}
});
return f;
}
}
class PlayerDataCard {
constructor(data) {
const e = data.entries();
this.index = e.next().value[1];
this.exp = e.next().value[1];
this.level = e.next().value[1];
e.next(); //未知
e.next(); //未知
this.id = e.next().value[1];
this.plus = {
hp : e.next().value[1],
atk: e.next().value[1],
rcv: e.next().value[1]
};
this.awoken = e.next().value[1];
let parsedLatent = this.parseLatent(e.next().value[1]);
this.latentMaxCount = parsedLatent.latentCount;
this.latent = this.deleteRepeatLatent(parsedLatent.latent.reverse());
this.assistIndex = e.next().value[1];
e.next(); //未知
this.superAwoken = e.next().value[1];
e.next(); //未知
if (!e.next().done)
{
console.warn("出现未知的用户箱子卡片数据");
}
//console.log(b);
}
static parseDataArray(datas)
{
let parsedCards = datas.map(ocard=>new PlayerDataCard(ocard));
for (const mon of parsedCards)
{
mon.assist = mon.assistIndex === 0 ? null : parsedCards.find(m=>m.index === mon.assistIndex);
}
return parsedCards;
}
parseLatent(number)
{
let latentNumber = BigInt(number);
let obj = {
latent: [],
latentCount: 6,
};
//console.log("原始数字",latentNumber.toString(2));
let latentVersion = latentNumber & 7n; //记录版本111是用几位来做记录
latentNumber >>= 3n;
//console.log("读取潜觉记录位数",latentNumber.toString(2));
let changeLatentCount = Boolean(latentNumber & 1n); //1时就是增加格子数
latentNumber >>= 1n;
//console.log("读取潜觉格子数是否改变",latentNumber.toString(2));
if (changeLatentCount)
{
obj.latentCount = Number(latentNumber & 15n);
latentNumber >>= 4n;
//console.log("读取潜觉格子数",latentNumber.toString(2));
}
const getbnum = latentVersion > 6 ? 127n : 31n;
const rightbnum = latentVersion > 6 ? 7n : 5n;
while (latentNumber>0)
{
obj.latent.push(Number(latentNumber & getbnum));
latentNumber >>= rightbnum;
//console.log("读取一个潜觉",latentNumber.toString(2));
}
return obj;
}
deleteRepeatLatent(olatents)
{
let latents = olatents.concat();
for (let ai = 0; ai < latents.length; ai++)
{
let useHole = latentUseHole(latents[ai]);
if (useHole > 1)
{
latents.splice(ai+1, useHole-1);
}
}
return latents;
}
}
//进化树
class EvoTree
{
@ -946,6 +1130,12 @@ function loadData(force = false)
clearInterval(formationBoxHook);
}
}
//读取储存的所有玩家数据
if (db) dbReadAll(db, "palyer_datas").then(datas=>{
PlayerDatas = datas.map(data=>new PlayerData(data));
document.body.querySelector("#player-data-frame").show();
});
}
}
@ -1026,44 +1216,45 @@ function creatNewUrl(arg) {
}
}
}
function ObjToUrl(obj)
{
let fileName;
switch (obj.d.f.length)
{
case 1:{
fileName = "solo.html";
break;
}
case 2:{
fileName = "multi.html";
break;
}
case 3:{
fileName = "triple.html";
break;
}
}
const newUrl = new URL(fileName, location);
newUrl.searchParams.set("d",JSON.stringify(obj.d));
if (!obj.s || obj.s == "ja")
{
newUrl.searchParams.delete("s");
}else
{
newUrl.searchParams.set("s", obj.s);
}
let l = getQueryString("l");
if (l)
{
newUrl.searchParams.set("l", l);
}
return newUrl;
}
//解析从QR图里获取的字符串
function inputFromQrString(string)
{
const re = {code: 0, message: null};
function ObjToUrl(obj)
{
let fileName;
switch (obj.d.f.length)
{
case 1:{
fileName = "solo.html";
break;
}
case 2:{
fileName = "multi.html";
break;
}
case 3:{
fileName = "triple.html";
break;
}
}
const newUrl = new URL(fileName, location);
newUrl.searchParams.set("d",JSON.stringify(obj.d));
if (!obj.s || obj.s == "ja")
{
newUrl.searchParams.delete("s");
}else
{
newUrl.searchParams.set("s", obj.s);
}
let l = getQueryString("l");
if (l)
{
newUrl.searchParams.set("l", l);
}
return newUrl;
}
//code 1~99 为各种编码
if (string.substr(0,1) == "{" && string.substr(-1,1) == "}")
{
@ -1611,140 +1802,121 @@ function initialize(event) {
};
playerDataFrame.uploadData = playerDataFrame.querySelector(".upload-data");
playerDataFrame.filePicker = playerDataFrame.querySelector(".file-select");
playerDataFrame.playerList = playerDataFrame.querySelector(".player-datas-list");
playerDataFrame.uploadData.onclick = function(){ playerDataFrame.filePicker.click(); };
playerDataFrame.filePicker.onchange = function(){ uploadPlayerData(this.files); };
playerDataFrame.initialize = function(){
this.playerList.innerHTML = '';
for (const playerData of PlayerDatas)
{
this.playerList.add(playerData);
}
};
function deletPlayerData(e)
{
const table = this.parentNode.parentNode.parentNode.parentNode;
table.parentNode.remove();
PlayerDatas.splice(PlayerDatas.indexOf(table.data), 1);
const name = table.getAttribute("data-player-name");
dbDelete(db, "palyer_datas", name);
}
playerDataFrame.playerList.add = function(data) {
this.appendChild(this.newPlayerData(data));
}
playerDataFrame.playerList.newPlayerData = function(data) {
const t = playerDataFrame.querySelector('#template-player-datas');
const clone = document.importNode(t.content, true);
const table = clone.querySelector("table");
table.data = data;
table.setAttribute("data-player-name", data.name);
const tbody = table.tBodies[0];
tbody.querySelector(".delete").onclick = deletPlayerData;
changeid({id: data.vs_icon}, tbody.querySelector(".avatar .monster"));
let name = tbody.querySelector(".name");
name.textContent = data.name;
name.setAttribute("data-camp", data.camp);
let lvexp = tbody.querySelector(".lvexp");
lvexp.querySelector(".progress-bar .bar").style.width = `${(data.exp - data.curLvExp) / (data.nextLvExp - data.curLvExp) * 100}%`;
lvexp.querySelector(".level").textContent = data.lv;
let stama = tbody.querySelector(".stama");
//第一管体力
stama.querySelector(".progress-bar .bar").style.width = `${Math.min(data.sta / data.sta_max, 1) * 100}%`;
//第二管体力
stama.querySelector(".progress-bar .bar2").style.width = `${Math.max(data.sta - data.sta_max, 0) / data.sta_max * 100}%`;
let sta_cur = stama.querySelector(".sta_number .sta_cur");
sta_cur.textContent = data.sta;
if (data.sta > data.sta_max) sta_cur.classList.add("stama-beyond");
stama.querySelector(".sta_number .sta_max").textContent = data.sta_max;
tbody.querySelector(".gold").textContent = data.gold.bigNumberToString();
tbody.querySelector(".coin").textContent = data.coin.bigNumberToString();
const deckList = tbody.querySelector(".decks .deck-list");
const teamLink = tbody.querySelector(".decks .team-link");
const radioList = tbody.querySelector(".decks .deck-radio-list");
data.parsedDecks.forEach((deck,idx)=>{
const li = radioList.appendChild(document.createElement("li"));
const ipt = li.appendChild(document.createElement("input"));
ipt.className = "deck-choose";
ipt.type = "radio";
ipt.name = `decks-${data.name}`;
ipt.value = idx;
ipt.onclick = changeDeck;
ipt.deck = deck;
});
radioList.querySelector(".deck-choose").click();
function changeDeck(e)
{
const deck = this.deck;
const lis = Array.from(deckList.querySelectorAll(":scope>li"));
lis.forEach((li,idx)=>{
changeid(deck.members[idx] ?? {id: 0}, li.querySelector(".monster:not(.assist)"));
changeid(deck.members[idx]?.assist ?? {id: 0}, li.querySelector(".monster.assist"));
});
const newFotmation = deck.toFormation();
teamLink.href = ObjToUrl(newFotmation.getPdfQrObj(false));
}
return clone;
}
async function uploadPlayerData(myFiles) {
if (myFiles.length < 1) return;
for (const myFile of myFiles)
{
for (const myFile of myFiles) {
try {
const reader = await fileReader(myFile, {readType: "text"});
const data = JSON.parse(reader.result);
const playerData = new PlayerData(data);
console.log(playerData,data);
console.log(playerData);
let dataCount = 0;
if (db) {
dataCount = await dbCount(db, "palyer_datas", data.name);
await dbWrite(db, "palyer_datas", data);
}
let oldIdx = PlayerDatas.findIndex(dt=>dt.name == data.name);
if (dataCount && oldIdx >= 0) { //如果已经存在,就更新旧的数据
PlayerDatas.splice(oldIdx, 1, playerData);
const liArr = playerDataFrame.playerList.querySelectorAll(":scope>li");
liArr[oldIdx].remove();
playerDataFrame.playerList.insertBefore(playerDataFrame.playerList.newPlayerData(playerData), liArr[oldIdx+1]);
} else {
PlayerDatas.push(playerData);
playerDataFrame.playerList.add(playerData);
}
} catch (error) {
console.error(error);
}
}
}
class PlayerData
{
constructor(data)
{
Object.assign(this, data);
this.card_parsed = data.card.map(ocard=>new PlayerDataCard(ocard));
for (const mon of this.card_parsed)
{
mon.assist = mon.assistIndex === 0 ? null : this.card_parsed.find(m=>m.index === mon.assistIndex);
}
this.teams = data.decksb.decks.concat(data.decksbs.decks || [])
.map(deck=>new PlayerDataDeck(deck));
for (const team of this.teams)
{
team.members = team.membersId.map(id=>id===0 ? null : this.card_parsed.find(m=>m.index === id));
}
}
}
class PlayerDataDeck {
constructor(data) {
const e = data.entries();
this.membersId = [
e.next().value[1],
e.next().value[1],
e.next().value[1],
e.next().value[1],
e.next().value[1],
];
this.badge = e.next().value[1];
this.membersId.push(e.next().value[1]);
e.next(); //未知
e.next(); //未知
if (!e.next().done)
{
console.warn("出现未知的用户队伍数据");
}
}
}
class PlayerDataCard {
constructor(data) {
const e = data.entries();
this.index = e.next().value[1];
this.exp = e.next().value[1];
this.level = e.next().value[1];
e.next(); //未知
e.next(); //未知
this.id = e.next().value[1];
this.plus = {
hp : e.next().value[1],
atk: e.next().value[1],
rcv: e.next().value[1]
};
this.awoken = e.next().value[1];
let parsedLatent = this.parseLatent(e.next().value[1]);
this.latentMaxCount = parsedLatent.latentCount;
this.latent = this.deleteRepeatLatent(parsedLatent.latent.reverse());
this.assistIndex = e.next().value[1];
e.next(); //未知
this.superAwoken = e.next().value[1];
e.next(); //未知
if (!e.next().done)
{
console.warn("出现未知的用户箱子卡片数据");
}
//console.log(b);
}
parseLatent(number)
{
let latentNumber = BigInt(number);
let obj = {
latent: [],
latentCount: 6,
};
//console.log("原始数字",latentNumber.toString(2));
let latentVersion = latentNumber & 7n; //记录版本111是用几位来做记录
latentNumber >>= 3n;
//console.log("读取潜觉记录位数",latentNumber.toString(2));
let changeLatentCount = Boolean(latentNumber & 1n); //1时就是增加格子数
latentNumber >>= 1n;
//console.log("读取潜觉格子数是否改变",latentNumber.toString(2));
if (changeLatentCount)
{
obj.latentCount = Number(latentNumber & 15n);
latentNumber >>= 4n;
//console.log("读取潜觉格子数",latentNumber.toString(2));
}
const getbnum = latentVersion > 6 ? 127n : 31n;
const rightbnum = latentVersion > 6 ? 7n : 5n;
while (latentNumber>0)
{
obj.latent.push(Number(latentNumber & getbnum));
latentNumber >>= rightbnum;
//console.log("读取一个潜觉",latentNumber.toString(2));
}
return obj;
}
deleteRepeatLatent(olatents)
{
let latents = olatents.concat();
for (let ai = 0; ai < latents.length; ai++)
{
let useHole = latentUseHole(latents[ai]);
if (useHole > 1)
{
latents.splice(ai+1, useHole-1);
}
}
return latents;
}
}
playerDataFrame.initialize = function(){
};
//标题和介绍文本框
const titleBox = formationBox.querySelector(".title-box");
@ -3412,8 +3584,8 @@ function changeid(mon, monDom, latentDom) {
{
monDom.removeAttribute("href");
monDom.removeAttribute("title");
parentNode.classList.add("delay");
parentNode.classList.remove("null");
monDom.classList.add("delay");
monDom.classList.remove("null");
parentNode.appendChild(fragment);
if (latentDom) latentDom.classList.add(className_displayNone);
return;
@ -3421,15 +3593,15 @@ function changeid(mon, monDom, latentDom) {
{
monDom.removeAttribute("href");
monDom.removeAttribute("title");
parentNode.classList.add("null");
parentNode.classList.remove("delay");
monDom.classList.add("null");
monDom.classList.remove("delay");
parentNode.appendChild(fragment);
if (latentDom) latentDom.classList.add(className_displayNone);
return;
} else if (monId > -1) //如果提供了id
{
parentNode.classList.remove("null");
parentNode.classList.remove("delay");
monDom.classList.remove("null");
monDom.classList.remove("delay");
monDom.setAttribute("data-cards-pic-idx", Math.ceil(monId % 1e5 / 100)); //添加图片编号
const idxInPage = (monId - 1) % 100; //获取当前页面的总序号
@ -4007,12 +4179,16 @@ function refreshAll(formationData) {
const teamData = formationData.teams[teamNum];
const badgeBox = teamBigBox.querySelector(".team-badge");
if (badgeBox) {
//为了解决火狐在代码片段里无法正确修改checked的问题所以事先把所有的都切换到false
const badges = Array.from(badgeBox.querySelectorAll(`.badge-radio`));
badges.forEach(badge=>badge.checked = false);
const badge = badgeBox.querySelector(`#team-${teamNum+1}-badge-${teamData[2] || 0}`);
badge.checked = true;
if (badge)
{
//为了解决火狐在代码片段里无法正确修改checked的问题所以事先把所有的都切换到false
const badges = Array.from(badgeBox.querySelectorAll(`.badge-radio`));
badges.forEach(badge=>badge.checked = false);
badge.checked = true;
}
}
const membersDom = teamBox.querySelector(".team-members");
@ -4353,10 +4529,12 @@ function refreshTeamTotalHP(totalDom, team, teamIdx) {
const teamHPAwoken = awokenCountInTeam(team, 46, solo, teamsCount); //全队大血包个数
let badgeHPScale = 1; //徽章倍率
if (team[2] == 4 && (solo || teamsCount === 3)) {
if (team[2] == 5 && (solo || teamsCount === 3)) {
badgeHPScale = 1.05;
} else if (team[2] == 11 && (solo || teamsCount === 3)) {
} else if (team[2] == 18 && (solo || teamsCount === 3)) {
badgeHPScale = 1.15;
} else if (team[2] == 20 && (solo || teamsCount === 3)) {
badgeHPScale = 1.10;
}
tHP = Math.round(Math.round(tHP * (1 + 0.05 * teamHPAwoken)) * badgeHPScale);

164
solo.html
View File

@ -66,8 +66,7 @@ var formation = new Formation(teamsCount,6);
<ul class="teams">
<li class="team-bigbox team-1">
<ul class="team-badge">
<li><input type="radio" name="team-1-badge" class="badge-radio" value="0" id="team-1-badge-0" checked><label class="badge" data-badge-icon="0" for="team-1-badge-0"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="1" id="team-1-badge-1"><label class="badge" data-badge-icon="1" for="team-1-badge-1"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="1" id="team-1-badge-1" checked><label class="badge" data-badge-icon="1" for="team-1-badge-1"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="2" id="team-1-badge-2"><label class="badge" data-badge-icon="2" for="team-1-badge-2"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="3" id="team-1-badge-3"><label class="badge" data-badge-icon="3" for="team-1-badge-3"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="4" id="team-1-badge-4"><label class="badge" data-badge-icon="4" for="team-1-badge-4"></label></li>
@ -76,15 +75,19 @@ var formation = new Formation(teamsCount,6);
<li><input type="radio" name="team-1-badge" class="badge-radio" value="7" id="team-1-badge-7"><label class="badge" data-badge-icon="7" for="team-1-badge-7"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="8" id="team-1-badge-8"><label class="badge" data-badge-icon="8" for="team-1-badge-8"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="9" id="team-1-badge-9"><label class="badge" data-badge-icon="9" for="team-1-badge-9"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="10" id="team-1-badge-10"><label class="badge" data-badge-icon="10" for="team-1-badge-10"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="11" id="team-1-badge-11"><label class="badge" data-badge-icon="11" for="team-1-badge-11"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="17" id="team-1-badge-17"><label class="badge" data-badge-icon="17" for="team-1-badge-17"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="18" id="team-1-badge-18"><label class="badge" data-badge-icon="18" for="team-1-badge-18"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="19" id="team-1-badge-19"><label class="badge" data-badge-icon="19" for="team-1-badge-19"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="20" id="team-1-badge-20"><label class="badge" data-badge-icon="20" for="team-1-badge-20"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="21" id="team-1-badge-21"><label class="badge" data-badge-icon="21" for="team-1-badge-21"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="10" id="team-1-badge-10"><label class="badge" data-badge-icon="10" for="team-1-badge-10"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="12" id="team-1-badge-12"><label class="badge" data-badge-icon="12" for="team-1-badge-12"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="13" id="team-1-badge-13"><label class="badge" data-badge-icon="13" for="team-1-badge-13"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="14" id="team-1-badge-14"><label class="badge" data-badge-icon="14" for="team-1-badge-14"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="15" id="team-1-badge-15"><label class="badge" data-badge-icon="15" for="team-1-badge-15"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="16" id="team-1-badge-16"><label class="badge" data-badge-icon="16" for="team-1-badge-16"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="17" id="team-1-badge-17"><label class="badge" data-badge-icon="17" for="team-1-badge-17"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="18" id="team-1-badge-18"><label class="badge" data-badge-icon="18" for="team-1-badge-18"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="50" id="team-1-badge-50"><label class="badge" data-badge-icon="50" for="team-1-badge-50"></label></li>
<!--<li><input type="radio" name="team-1-badge" class="badge-radio" value="15" id="team-1-badge-15"><label class="badge" data-badge-icon="15" for="team-1-badge-15"></label></li>
<li><input type="radio" name="team-1-badge" class="badge-radio" value="16" id="team-1-badge-16"><label class="badge" data-badge-icon="16" for="team-1-badge-16"></label></li>-->
</ul>
<div class="team-total-info">
<div class="tIf-addition-info">
@ -135,8 +138,8 @@ var formation = new Formation(teamsCount,6);
<div class="team-box-name">
<div class="team-box">
<ul class="team-assist">
<li class="member member-1 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="0">
<li class="member member-1">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="0">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -147,8 +150,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="1">
<li class="member member-2">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="1">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -159,8 +162,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="2">
<li class="member member-3">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="2">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -171,8 +174,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="3">
<li class="member member-4">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="3">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -183,8 +186,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="4">
<li class="member member-5">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="4">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -195,8 +198,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="5">
<li class="member member-6">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="5">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -283,8 +286,8 @@ var formation = new Formation(teamsCount,6);
</li>
</ul>
<ul class="team-members">
<li class="member member-1 team-leader null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="0">
<li class="member member-1 team-leader">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="0">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -296,8 +299,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="1">
<li class="member member-2">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="1">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -309,8 +312,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="2">
<li class="member member-3">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="2">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -322,8 +325,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="3">
<li class="member member-4">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="3">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -335,8 +338,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="4">
<li class="member member-5">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="4">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -348,8 +351,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 team-leader null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="5">
<li class="member member-6 team-leader">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="5">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -805,7 +808,7 @@ var formation = new Formation(teamsCount,6);
</div>
<div class="monsterinfo-box">
<div class="monster-head">
<a class="monster" target="_blank">
<a class="monster null" target="_blank">
<div class="property"></div>
<div class="subproperty"></div>
</a>
@ -1100,10 +1103,105 @@ var formation = new Formation(teamsCount,6);
<div class="control-button-box">
<button class="mask-close brown-button"></button>
<button class="upload-data brown-button"></button>
<input type="file" class="file-select display-none" />
<input type="file" class="file-select display-none" multiple/>
</div>
<div class="mask-content">
<ul class="player-datas-list"></ul>
<template id="template-player-datas">
<li>
<table class="player-card" data-player-name="">
<tbody>
<tr>
<td class="avatar" rowspan="3">
<div class="monster null" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title="">
<div class="property" data-property=""></div>
<div class="subproperty" data-property=""></div>
</div>
</td>
<td class="name"></td>
<td class="control"><button class="brown-button delete"></button></td>
</tr>
<tr>
<td class="lvexp"><div class="progress-bar"><div class="bar"></div></div><div class="level"></div></td>
<td class="gold"></td>
</tr>
<tr>
<td class="stama"><div class="progress-bar"><div class="bar"></div><div class="bar2"></div></div><div class="sta_number"><span class="sta_cur"></span>/<span class="sta_max"></span></div></td>
<td class="coin"></td>
</tr>
<tr>
<td class="decks" colspan="4">
<a class="team-link" target="_blank">
<ul class="deck-list">
<li class="team-leader">
<div class="monster null" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title="">
<div class="property" data-property=""></div>
<div class="subproperty" data-property=""></div>
</div>
<div class="monster assist" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title="">
<div class="property" data-property=""></div>
<div class="subproperty" data-property=""></div>
</div>
</li>
<li>
<div class="monster null" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title="">
<div class="property" data-property=""></div>
<div class="subproperty" data-property=""></div>
</div>
<div class="monster assist" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title="">
<div class="property" data-property=""></div>
<div class="subproperty" data-property=""></div>
</div>
</li>
<li>
<div class="monster null" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title="">
<div class="property" data-property=""></div>
<div class="subproperty" data-property=""></div>
</div>
<div class="monster assist" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title="">
<div class="property" data-property=""></div>
<div class="subproperty" data-property=""></div>
</div>
</li>
<li>
<div class="monster null" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title="">
<div class="property" data-property=""></div>
<div class="subproperty" data-property=""></div>
</div>
<div class="monster assist" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title="">
<div class="property" data-property=""></div>
<div class="subproperty" data-property=""></div>
</div>
</li>
<li>
<div class="monster null" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title="">
<div class="property" data-property=""></div>
<div class="subproperty" data-property=""></div>
</div>
<div class="monster assist" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title="">
<div class="property" data-property=""></div>
<div class="subproperty" data-property=""></div>
</div>
</li>
<li class="team-leader">
<div class="monster null" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title="">
<div class="property" data-property=""></div>
<div class="subproperty" data-property=""></div>
</div>
<div class="monster assist" data-cardid="" data-cards-pic-idx="" data-cards-pic-x="" data-cards-pic-y="" title="">
<div class="property" data-property=""></div>
<div class="subproperty" data-property=""></div>
</div>
</li>
</ul>
</a>
<ul class="deck-radio-list"></ul>
</td>
</tr>
</tbody>
</table>
</li>
</template>
</div>
</div>
</body>

View File

@ -978,6 +978,25 @@ icon.type
.badge[data-badge-icon='18']::before{
background-position-y:calc(-30px * 18);
}
.badge[data-badge-icon='19']::before{
background-position-y:calc(-30px * 19);
}
.badge[data-badge-icon='20']::before{
background-position-y:calc(-30px * 20);
}
.badge[data-badge-icon='21']::before{
background-position-y:calc(-30px * 21);
}
.badge[data-badge-icon='22']::before{
background-position-y:calc(-30px * 22);
}
.badge[data-badge-icon='23']::before{
background-position-y:calc(-30px * 23);
}
.badge[data-badge-icon='50']::before{
background-position-x: -36px;
background-position-y: 0;
}
/*属性图片*/
.attr

235
style.css
View File

@ -333,18 +333,18 @@ ul{
cursor: pointer;
border-radius: 5px;
}
.null .monster,.delay .monster,
.monster.null,.monster.delay,
.null .property,.delay .property,
.null .subproperty,.delay .subproperty
{
box-sizing: border-box;
background-image: none !important;
}
.null .monster{
.monster.null{
background-color: rgba(230,230,230,0.5);
border: 3px grey dashed;
}
.edit-box .null .monster{
.edit-box .monster.null{
background-color: #653;
border: none;
box-shadow: inset black 0 0 7px;
@ -352,12 +352,12 @@ ul{
.member{
vertical-align: top;
}
.delay .monster{
.monster.delay{
background-color: yellow;
box-shadow: inset orange 0 0 7px;
border: 3px black solid;
}
.delay .monster::before{
.monster.delay::before{
width: 94px;
height: 94px;
color: black;
@ -389,7 +389,9 @@ ul{
position: absolute;
left:10px;
}
.null .monster>div,.delay .monster>div{
.monster.null>div,
.monster.delay>div
{
display:none !important;
}
.monster .plus .hp::before,
@ -2862,7 +2864,7 @@ table .orb-icon
margin: 0 4px;
}
.evo-materials .null .monster
.evo-materials .monster.null
{
opacity: 0.5;
}
@ -3038,6 +3040,225 @@ table .orb-icon
float: right;
margin-right: 5px;
}
.player-datas-list>li
{
text-align: center;
}
.player-card
{
display: inline-block;
background-color: #C39350;
background-image: url(images/slate.svg);
background-size: 300px 300px;
border: 3px solid black;
border-radius: 15px;
margin-top: 10px;
padding: 5px;
text-align: left;
font-family: var(--game-font-family);
border-spacing: 4px 0;
}
.player-card .delete::before
{
content: "\f2ed";
}
.player-card .name
{
background-color: #E7D5BA;
border: 1px solid #815C33;
border-radius: 5px;
padding: 0 5px;
font-family: var(--font-family);
}
.player-card .name::before
{
content: "";
display: inline-block;
width: 36px;
height: 36px;
background-image: url(images/icon-orbs.png);
background-position-y: 36px;
background-repeat: no-repeat;
vertical-align: bottom;
transform: scale(0.5);
margin: -9px;
margin-right: -3px;
}
.player-card .name[data-camp="1"]::before
{
background-position-y: 0;
}
.player-card .name[data-camp="2"]::before
{
background-position-y: -36px;
}
.player-card .name[data-camp="3"]::before
{
background-position-y: -72px;
}
.player-card .lvexp,
.player-card .stama,
.player-card .gold,
.player-card .coin
{
background-color: #363331;
border: #86663C 3px solid;
padding: 0 5px 0 5px;
}
.player-card .lvexp,
.player-card .gold
{
border-radius: 0 0 10px 10px;
border-bottom: none;
box-shadow: inset black -2px 3px 3px;
}
.player-card .stama,
.player-card .coin
{
border-radius: 10px 10px 0 0;
border-top: none;
box-shadow: inset black -2px -3px 3px;
}
.player-card .lvexp::before,
.player-card .stama::before
{
display: inline-block;
width: 45px;
}
.player-card .lvexp .level,
.player-card .stama .sta_number
{
width: 80px;
margin-left: 5px;
}
.player-card .gold,
.player-card .coin
{
width: 190px;
}
.player-card tr:not(:first-of-type)
{
text-shadow: black 1px 1px 1px;
}
.player-card .lvexp::before,
.player-card .lvexp .level
{
color: #F2DA50;
}
.player-card .stama::before,
.player-card .stama .sta_number
{
color: #29BCE9;
}
.player-card .stama .sta_number .sta_cur.stama-beyond
{
color: #F66A01;
}
.player-card .gold
{
color: #85FF8B;
}
.player-card .coin
{
color: #E1E64E;
}
.player-card .lvexp .level,
.player-card .stama .sta_number
{
display: inline-block;
}
.player-card .progress-bar
{
display: inline-block;
height: 8px;
width: 150px;
background-color: black;
border-radius: 10px;
box-shadow: inset white 0 -3px 2px;
box-sizing: border-box;
padding: 2px;
position: relative;
}
.player-card .progress-bar .bar,
.player-card .progress-bar .bar2
{
position: absolute;
height: 100%;
border-radius: 10px;
box-shadow: inset black 0 -3px 2px;
}
.player-card .lvexp .bar
{
background-color: #F2DA50;
}
.player-card .stama .bar
{
background-color: #29BCE9;
}
.player-card .stama .bar2
{
background-color: #F66A01;
}
.player-card .gold::before,
.player-card .coin::before
{
content: "";
display: inline-block;
width: 36px;
height: 36px;
background-image: url(images/icon-skills.png);
background-position-y: calc(-36px * 30);
background-repeat: no-repeat;
vertical-align: top;
transform: scale(0.75);
margin: calc(-36px * (1 - 0.75) / 2);
}
.player-card .gold::before
{
background-position-x: -36px;
}
.deck-list,
.deck-radio-list
{
text-align: center;
}
.deck-list>li,
.deck-radio-list>li
{
display: inline-block;
position: relative
}
.deck-radio-list input
{
font-size: 2em;
}
.deck-list
{
margin-bottom: 10px;
}
.deck-list .monster
{
transform: scale(0.75);
margin: calc(-100px * (1 - 0.75) / 2 );
}
.deck-list .monster.assist
{
left: 1px;
bottom: -16px;
position: absolute;
transform: scale(0.4);
margin: calc(-100px * (1 - 0.4) / 2 );
}
/*.base .evo-type::before,
.base .evo-type::after
{

View File

@ -150,8 +150,8 @@ var formation = new Formation(teamsCount,6);
<div class="team-box-name">
<div class="team-box">
<ul class="team-assist">
<li class="member member-1 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="0">
<li class="member member-1">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="0">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -162,8 +162,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="1">
<li class="member member-2">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="1">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -174,8 +174,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="2">
<li class="member member-3">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="2">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -186,8 +186,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="3">
<li class="member member-4">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="3">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -198,8 +198,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="4">
<li class="member member-5">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="4">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -210,8 +210,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 null">
<a class="monster" target="_blank" data-team="0" data-assist="1" data-index="5">
<li class="member member-6">
<a class="monster null" target="_blank" data-team="0" data-assist="1" data-index="5">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -298,8 +298,8 @@ var formation = new Formation(teamsCount,6);
</li>
</ul>
<ul class="team-members">
<li class="member member-1 team-leader null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="0">
<li class="member member-1 team-leader">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="0">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -311,8 +311,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="1">
<li class="member member-2">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="1">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -324,8 +324,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="2">
<li class="member member-3">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="2">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -337,8 +337,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="3">
<li class="member member-4">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="3">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -350,8 +350,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="4">
<li class="member member-5">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="4">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -363,8 +363,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 team-leader null">
<a class="monster" target="_blank" data-team="0" data-assist="0" data-index="5">
<li class="member member-6 team-leader">
<a class="monster null" target="_blank" data-team="0" data-assist="0" data-index="5">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -609,8 +609,8 @@ var formation = new Formation(teamsCount,6);
<div class="team-box-name">
<div class="team-box">
<ul class="team-assist">
<li class="member member-1 null">
<a class="monster" target="_blank" data-team="1" data-assist="1" data-index="0">
<li class="member member-1">
<a class="monster null" target="_blank" data-team="1" data-assist="1" data-index="0">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -621,8 +621,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
<a class="monster" target="_blank" data-team="1" data-assist="1" data-index="1">
<li class="member member-2">
<a class="monster null" target="_blank" data-team="1" data-assist="1" data-index="1">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -633,8 +633,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
<a class="monster" target="_blank" data-team="1" data-assist="1" data-index="2">
<li class="member member-3">
<a class="monster null" target="_blank" data-team="1" data-assist="1" data-index="2">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -645,8 +645,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
<a class="monster" target="_blank" data-team="1" data-assist="1" data-index="3">
<li class="member member-4">
<a class="monster null" target="_blank" data-team="1" data-assist="1" data-index="3">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -657,8 +657,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
<a class="monster" target="_blank" data-team="1" data-assist="1" data-index="4">
<li class="member member-5">
<a class="monster null" target="_blank" data-team="1" data-assist="1" data-index="4">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -669,8 +669,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 null">
<a class="monster" target="_blank" data-team="1" data-assist="1" data-index="5">
<li class="member member-6">
<a class="monster null" target="_blank" data-team="1" data-assist="1" data-index="5">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -757,8 +757,8 @@ var formation = new Formation(teamsCount,6);
</li>
</ul>
<ul class="team-members">
<li class="member member-1 team-leader null">
<a class="monster" target="_blank" data-team="1" data-assist="0" data-index="0">
<li class="member member-1 team-leader">
<a class="monster null" target="_blank" data-team="1" data-assist="0" data-index="0">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -770,8 +770,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
<a class="monster" target="_blank" data-team="1" data-assist="0" data-index="1">
<li class="member member-2">
<a class="monster null" target="_blank" data-team="1" data-assist="0" data-index="1">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -783,8 +783,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
<a class="monster" target="_blank" data-team="1" data-assist="0" data-index="2">
<li class="member member-3">
<a class="monster null" target="_blank" data-team="1" data-assist="0" data-index="2">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -796,8 +796,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
<a class="monster" target="_blank" data-team="1" data-assist="0" data-index="3">
<li class="member member-4">
<a class="monster null" target="_blank" data-team="1" data-assist="0" data-index="3">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -809,8 +809,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
<a class="monster" target="_blank" data-team="1" data-assist="0" data-index="4">
<li class="member member-5">
<a class="monster null" target="_blank" data-team="1" data-assist="0" data-index="4">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -822,8 +822,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 team-leader null">
<a class="monster" target="_blank" data-team="1" data-assist="0" data-index="5">
<li class="member member-6 team-leader">
<a class="monster null" target="_blank" data-team="1" data-assist="0" data-index="5">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -1068,8 +1068,8 @@ var formation = new Formation(teamsCount,6);
<div class="team-box-name">
<div class="team-box">
<ul class="team-assist">
<li class="member member-1 null">
<a class="monster" target="_blank" data-team="2" data-assist="1" data-index="0">
<li class="member member-1">
<a class="monster null" target="_blank" data-team="2" data-assist="1" data-index="0">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -1080,8 +1080,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
<a class="monster" target="_blank" data-team="2" data-assist="1" data-index="1">
<li class="member member-2">
<a class="monster null" target="_blank" data-team="2" data-assist="1" data-index="1">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -1092,8 +1092,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
<a class="monster" target="_blank" data-team="2" data-assist="1" data-index="2">
<li class="member member-3">
<a class="monster null" target="_blank" data-team="2" data-assist="1" data-index="2">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -1104,8 +1104,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
<a class="monster" target="_blank" data-team="2" data-assist="1" data-index="3">
<li class="member member-4">
<a class="monster null" target="_blank" data-team="2" data-assist="1" data-index="3">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -1116,8 +1116,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
<a class="monster" target="_blank" data-team="2" data-assist="1" data-index="4">
<li class="member member-5">
<a class="monster null" target="_blank" data-team="2" data-assist="1" data-index="4">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -1128,8 +1128,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 null">
<a class="monster" target="_blank" data-team="2" data-assist="1" data-index="5">
<li class="member member-6">
<a class="monster null" target="_blank" data-team="2" data-assist="1" data-index="5">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -1216,8 +1216,8 @@ var formation = new Formation(teamsCount,6);
</li>
</ul>
<ul class="team-members">
<li class="member member-1 team-leader null">
<a class="monster" target="_blank" data-team="2" data-assist="0" data-index="0">
<li class="member member-1 team-leader">
<a class="monster null" target="_blank" data-team="2" data-assist="0" data-index="0">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -1229,8 +1229,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-2 null">
<a class="monster" target="_blank" data-team="2" data-assist="0" data-index="1">
<li class="member member-2">
<a class="monster null" target="_blank" data-team="2" data-assist="0" data-index="1">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -1242,8 +1242,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-3 null">
<a class="monster" target="_blank" data-team="2" data-assist="0" data-index="2">
<li class="member member-3">
<a class="monster null" target="_blank" data-team="2" data-assist="0" data-index="2">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -1255,8 +1255,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-4 null">
<a class="monster" target="_blank" data-team="2" data-assist="0" data-index="3">
<li class="member member-4">
<a class="monster null" target="_blank" data-team="2" data-assist="0" data-index="3">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -1268,8 +1268,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-5 null">
<a class="monster" target="_blank" data-team="2" data-assist="0" data-index="4">
<li class="member member-5">
<a class="monster null" target="_blank" data-team="2" data-assist="0" data-index="4">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -1281,8 +1281,8 @@ var formation = new Formation(teamsCount,6);
<div class="switch-leader display-none"></div>
</a>
</li>
<li class="member member-6 team-leader null">
<a class="monster" target="_blank" data-team="2" data-assist="0" data-index="5">
<li class="member member-6 team-leader">
<a class="monster null" target="_blank" data-team="2" data-assist="0" data-index="5">
<div class="property"></div>
<div class="subproperty"></div>
<div class="plus"><div class="hp"></div><div class="atk"></div><div class="rcv"></div></div>
@ -1738,7 +1738,7 @@ var formation = new Formation(teamsCount,6);
</div>
<div class="monsterinfo-box">
<div class="monster-head">
<a class="monster" target="_blank">
<a class="monster null" target="_blank">
<div class="property"></div>
<div class="subproperty"></div>
</a>