diff --git a/.gitignore b/.gitignore
index 3a58371e..9f916e85 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@
/monsters-info/official-API/*-mdatadl.json
/monsters-info/official-API/*-shop_item.json
/sound/voice/variables.txt
+/fonts/.font-spider
diff --git a/README.md b/README.md
index a7502f9b..f8cb48f1 100644
--- a/README.md
+++ b/README.md
@@ -100,4 +100,6 @@ Please refer to existing files.
# 使用开源软件 | Open source software used
* [pad-rikuu](//github.com/kiootic/pad-rikuu) //Parse data
* [html2canvas](//github.com/niklasvh/html2canvas) //Capture Image
-* [aaa](//github.com/jy4340132/aaa) //Play voice(ADPCM wav)
\ No newline at end of file
+* [aaa](//github.com/jy4340132/aaa) //Play voice(ADPCM wav)
+* [Zpix (最像素)](//github.com/SolidZORO/zpix-pixel-font) //Pixel Font
+* [font-spider](//github.com/aui/font-spider) //Compression Font file
\ No newline at end of file
diff --git a/document/tips-search-name.png b/document/tips-search-name.png
index 119918de..8e3b7f91 100644
Binary files a/document/tips-search-name.png and b/document/tips-search-name.png differ
diff --git a/fonts/font-spider run.bat b/fonts/font-spider run.bat
new file mode 100644
index 00000000..b01494ec
--- /dev/null
+++ b/fonts/font-spider run.bat
@@ -0,0 +1,2 @@
+:: font-spider : https://github.com/aui/font-spider
+cmd /K font-spider font-spider.html
diff --git a/fonts/font-spider.html b/fonts/font-spider.html
new file mode 100644
index 00000000..6ffec9bf
--- /dev/null
+++ b/fonts/font-spider.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+ 像素进化
+ 像素進化
+ Pixel Evo
+ ドット進化
+ 도트 진화
+
+
diff --git a/fonts/zpix.eot b/fonts/zpix.eot
new file mode 100644
index 00000000..de900494
Binary files /dev/null and b/fonts/zpix.eot differ
diff --git a/fonts/zpix.svg b/fonts/zpix.svg
new file mode 100644
index 00000000..879fa889
--- /dev/null
+++ b/fonts/zpix.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/fonts/zpix.ttf b/fonts/zpix.ttf
new file mode 100644
index 00000000..b1675163
Binary files /dev/null and b/fonts/zpix.ttf differ
diff --git a/fonts/zpix.woff b/fonts/zpix.woff
new file mode 100644
index 00000000..ff201d7b
Binary files /dev/null and b/fonts/zpix.woff differ
diff --git a/fonts/zpix.woff2 b/fonts/zpix.woff2
new file mode 100644
index 00000000..b55f606c
Binary files /dev/null and b/fonts/zpix.woff2 differ
diff --git a/help.md b/help.md
index da7de578..54cbe526 100644
--- a/help.md
+++ b/help.md
@@ -9,8 +9,8 @@ Use back to undo the last edit.
* 拖拽怪物头像即可快速交换位置或复制怪物,也支持手机触屏。
Drag monster avatars to quickly swap positions or copy monster, also supports mobile touch screen.

-* 可以在编辑界面的怪物ID输入**怪物名称**或**标签**来搜索怪物。
-You can search for monsters by entering the **Monster Name** or **Tags** in the monster ID of the editing interface.
+* 可以在编辑界面的怪物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)

点击**系列ID**或**标签**,可搜索该系列
Clisk the **Series ID** or **Tags** to search for series.
diff --git a/languages/en.css b/languages/en.css
index 655c0df3..257bbd22 100644
--- a/languages/en.css
+++ b/languages/en.css
@@ -370,11 +370,87 @@
{
content: "Search By Tags";
}
-.dialog-close::before
+.dialog-close::before,
+.mask-close::before
{
content: "Close";
}
.dialog .dialog-content .additional-string::before
{
content: "Other Languages";
+}
+.open-evolutionary-tree::before
+{
+ content: "⛓️Evo Search";
+}
+.base .evo-type::before,
+.base .evo-type::after
+{
+ content: "Base";
+}
+.evolution .evo-type::before,
+.evolution .evo-type::after
+{
+ content: "Evolution";
+}
+.ult-evo .evo-type::before,
+.ult-evo .evo-type::after
+{
+ content: "Ult Evo";
+}
+.reincarnation .evo-type::before,
+.reincarnation .evo-type::after
+{
+ content: "Reincarnation";
+}
+.pixel-evo .evo-type::before,
+.pixel-evo .evo-type::after
+{
+ content: "Pixel Evo";
+}
+.assist-evo .evo-type::before,
+.assist-evo .evo-type::after
+{
+ content: "Assist Evo";
+}
+.super-reincarnation .evo-type::before,
+.super-reincarnation .evo-type::after
+{
+ content: "Super Reincarnation";
+}
+.super-ult-evo .evo-type::before,
+.super-ult-evo .evo-type::after
+{
+ content: "Super Ult Evo";
+}
+
+.evolution .evo-type
+{
+ transform: scaleX(0.90);
+ margin: calc(-100px * (1 - 0.90) / 2);
+}
+.pixel-evo .evo-type
+{
+ transform: scaleX(0.95);
+ margin: calc(-100px * (1 - 0.95) / 2);
+}
+.super-ult-evo .evo-type
+{
+ transform: scaleX(0.65);
+ margin: calc(-100px * (1 - 0.63) / 2);
+}
+.reincarnation .evo-type
+{
+ transform: scaleX(0.60);
+ margin: calc(-100px * (1 - 0.55) / 2);
+}
+.assist-evo .evo-type
+{
+ transform: scaleX(0.85);
+ margin: calc(-100px * (1 - 0.85) / 2);
+}
+.super-reincarnation .evo-type
+{
+ transform: scaleX(0.43);
+ margin: calc(-100px * 1 / 2);
}
\ No newline at end of file
diff --git a/languages/ja.css b/languages/ja.css
index 9ab66eaa..9222480c 100644
--- a/languages/ja.css
+++ b/languages/ja.css
@@ -362,11 +362,66 @@
{
content: "タグで検索";
}
-.dialog-close::before
+.dialog-close::before,
+.mask-close::before
{
content: "閉じる";
}
.dialog .dialog-content .additional-string::before
{
content: "他の言語";
+}
+.open-evolutionary-tree::before
+{
+ content: "⛓️進化サーチ";
+}
+.base .evo-type::before,
+.base .evo-type::after
+{
+ content: "ベース";
+}
+.evolution .evo-type::before,
+.evolution .evo-type::after
+{
+ content: "進化";
+}
+.ult-evo .evo-type::before,
+.ult-evo .evo-type::after
+{
+ content: "究極進化";
+}
+.reincarnation .evo-type::before,
+.reincarnation .evo-type::after
+{
+ content: "転生進化";
+}
+.pixel-evo .evo-type::before,
+.pixel-evo .evo-type::after
+{
+ content: "ドット進化";
+}
+.assist-evo .evo-type::before,
+.assist-evo .evo-type::after
+{
+ content: "アシスト進化";
+}
+.super-reincarnation .evo-type::before,
+.super-reincarnation .evo-type::after
+{
+ content: "超転生進化";
+}
+.super-ult-evo .evo-type::before,
+.super-ult-evo .evo-type::after
+{
+ content: "超究極進化";
+}
+.pixel-evo .evo-type
+{
+ transform: scaleX(0.90);
+ margin: calc(-100px * (1 - 0.90) / 2);
+}
+.assist-evo .evo-type
+{
+ transform: scaleX(0.80);
+ margin: calc(-100px * (1 - 0.80) / 2);
}
\ No newline at end of file
diff --git a/languages/ko.css b/languages/ko.css
index be13fab2..42a25bf2 100644
--- a/languages/ko.css
+++ b/languages/ko.css
@@ -359,11 +359,60 @@
{
content: "태그로 검색";
}
-.dialog-close::before
+.dialog-close::before,
+.mask-close::before
{
content: "가까이";
}
.dialog .dialog-content .additional-string::before
{
content: "다른 언어";
+}
+.open-evolutionary-tree::before
+{
+ content: "⛓️진화 계통";
+}
+.base .evo-type::before,
+.base .evo-type::after
+{
+ content: "베이스";
+}
+.evolution .evo-type::before,
+.evolution .evo-type::after
+{
+ content: "진 화";
+}
+.ult-evo .evo-type::before,
+.ult-evo .evo-type::after
+{
+ content: "궁극진화";
+}
+.reincarnation .evo-type::before,
+.reincarnation .evo-type::after
+{
+ content: "환생 진와";
+}
+.pixel-evo .evo-type::before,
+.pixel-evo .evo-type::after
+{
+ content: "도트 진화";
+}
+.assist-evo .evo-type::before,
+.assist-evo .evo-type::after
+{
+ content: "어시스트 진화";
+}
+.super-reincarnation .evo-type::before,
+.super-reincarnation .evo-type::after
+{
+ content: "초 환색진화";
+}
+.super-ult-evo .evo-type::before,
+.super-ult-evo .evo-type::after
+{
+ content: "초 궁극진화";
+}
+.evo-type
+{
+ font-weight: bold;
}
\ No newline at end of file
diff --git a/languages/zh-CN.css b/languages/zh-CN.css
index e6ddf16a..9a28617b 100644
--- a/languages/zh-CN.css
+++ b/languages/zh-CN.css
@@ -1,7 +1,8 @@
@charset "utf-8";
@import "zh.css";
.edit-box .monsterinfo-box .monster-name,
-.edit-box .skill-box .skill-datail
+.edit-box .skill-box .skill-datail,
+.evo-panel-right .monster-name
{
font-family: "Microsoft Yahei","Source Han Sans",Arial, Helvetica, sans-serif;
font-weight: bold;
diff --git a/languages/zh-TW.css b/languages/zh-TW.css
index 230dc508..3e70bfe7 100644
--- a/languages/zh-TW.css
+++ b/languages/zh-TW.css
@@ -365,11 +365,56 @@
{
content: "以標簽搜索";
}
-.dialog-close::before
+.dialog-close::before,
+.mask-close::before
{
content: "關閉";
}
.dialog .dialog-content .additional-string::before
{
content: "其他語言";
+}
+.open-evolutionary-tree::before
+{
+ content: "⛓️進化鏈";
+}
+.base .evo-type::before,
+.base .evo-type::after
+{
+ content: "基礎";
+}
+.evolution .evo-type::before,
+.evolution .evo-type::after
+{
+ content: "進化";
+}
+.ult-evo .evo-type::before,
+.ult-evo .evo-type::after
+{
+ content: "究極進化";
+}
+.reincarnation .evo-type::before,
+.reincarnation .evo-type::after
+{
+ content: "轉生進化";
+}
+.pixel-evo .evo-type::before,
+.pixel-evo .evo-type::after
+{
+ content: "像素進化";
+}
+.assist-evo .evo-type::before,
+.assist-evo .evo-type::after
+{
+ content: "輔助進化";
+}
+.super-reincarnation .evo-type::before,
+.super-reincarnation .evo-type::after
+{
+ content: "超轉生進化";
+}
+.super-ult-evo .evo-type::before,
+.super-ult-evo .evo-type::after
+{
+ content: "超究極進化";
}
\ No newline at end of file
diff --git a/languages/zh.css b/languages/zh.css
index 51f5ec6a..2b9917dc 100644
--- a/languages/zh.css
+++ b/languages/zh.css
@@ -365,11 +365,56 @@
{
content: "以標簽搜索";
}
-.dialog-close::before
+.dialog-close::before,
+.mask-close::before
{
content: "关闭";
}
.dialog .dialog-content .additional-string::before
{
content: "其他語言";
+}
+.open-evolutionary-tree::before
+{
+ content: "⛓️进化链";
+}
+.base .evo-type::before,
+.base .evo-type::after
+{
+ content: "基礎";
+}
+.evolution .evo-type::before,
+.evolution .evo-type::after
+{
+ content: "進化";
+}
+.ult-evo .evo-type::before,
+.ult-evo .evo-type::after
+{
+ content: "究極進化";
+}
+.reincarnation .evo-type::before,
+.reincarnation .evo-type::after
+{
+ content: "轉生進化";
+}
+.pixel-evo .evo-type::before,
+.pixel-evo .evo-type::after
+{
+ content: "像素進化";
+}
+.assist-evo .evo-type::before,
+.assist-evo .evo-type::after
+{
+ content: "輔助進化";
+}
+.super-reincarnation .evo-type::before,
+.super-reincarnation .evo-type::after
+{
+ content: "超轉生進化";
+}
+.super-ult-evo .evo-type::before,
+.super-ult-evo .evo-type::after
+{
+ content: "超究極進化";
}
\ No newline at end of file
diff --git a/multi.html b/multi.html
index 487b321e..a32c71f4 100644
--- a/multi.html
+++ b/multi.html
@@ -721,7 +721,7 @@ var formation = new Formation(teamsCount,5);
@@ -871,11 +871,11 @@ var formation = new Formation(teamsCount,5);
diff --git a/script-universal_function.js b/script-universal_function.js
index e1fbb6bf..2dba4101 100644
--- a/script-universal_function.js
+++ b/script-universal_function.js
@@ -396,7 +396,7 @@ function calculateAbility_max(id,solo, teamsCount)
//搜索卡片用
function searchCards(cards,attr1,attr2,fixMainColor,types,typeAndOr,rares,awokens,sawokens,equalAk,incSawoken)
{
- let cardsRange = cards.concat(); //这里需要复制一份原来的数组,不然若无筛选,后面的排序会改变初始Cards
+ let cardsRange = cards.slice(1); //这里需要复制一份原来的数组,不然若无筛选,后面的排序会改变初始Cards
//属性
if (attr1 != null && attr1 === attr2 || //主副属性一致并不为空
(attr1 === 6 && attr2 === -1)) //主副属性都为“无”
diff --git a/script.js b/script.js
index 41c78c50..249bbf57 100644
--- a/script.js
+++ b/script.js
@@ -121,6 +121,7 @@ DBOpenRequest.onupgradeneeded = function(event) {
}
}*/
+
//队员基本的留空
var Member = function() {
this.id = 0;
@@ -307,6 +308,97 @@ Formation.prototype.loadObj = function(f) {
if (f.b)
this.teams[0][2] = f.b; //原来模式的徽章
};
+
+//进化树
+class EvoTree
+{
+ constructor(mid, parent = null)
+ {
+ const _this = this;
+ if (parent == null)
+ {
+ mid = Cards[mid].evoRootId;
+ }
+ const card = Cards[mid];
+
+ this.id = mid;
+ this.card = card;
+ if (parent == null)
+ {
+ this.evoType = "Base";
+ }else
+ {
+ if (card.evoMaterials.includes(3826)) //像素进化
+ {
+ this.evoType = "Pixel Evo";
+ }else if (card.awakenings.includes(49)) //武器
+ {
+ this.evoType = "Assist Evo";
+ }else if (card.isUltEvo) //究进
+ {
+ if (parent.card.isUltEvo) //超究进
+ {
+ this.evoType = "Super Ult Evo";
+ }else
+ {
+ this.evoType = "Ult Evo";
+ }
+ }else
+ {
+ if (parent.card.isUltEvo) //转生
+ {
+ this.evoType = "Reincarnation";
+ }else if(parent.evoType == "Reincarnation")
+ {
+ this.evoType = "Super Reincarnation";
+ }else
+ {
+ this.evoType = "Evolution";
+ }
+ }
+ }
+ this.children = Cards.filter(scard=>scard.evoBaseId == mid && scard.id != mid).map(scard=>new EvoTree(scard.id,_this));
+ };
+ toListNode()
+ {
+ const createCardHead = editBox.createCardHead;
+ const tBox = document.createElement("div");
+ tBox.className = "evo-box";
+ const evoPanel = tBox.appendChild(document.createElement("div"));
+ evoPanel.className = "evo-panel " + this.evoType.toLowerCase().replace(/\s/g,"-");
+ const evotPanel_L = evoPanel.appendChild(document.createElement("div"));
+ evotPanel_L.className = "evo-panel-left";
+ const evotPanel_R = evoPanel.appendChild(document.createElement("div"));
+ evotPanel_R.className = "evo-panel-right";
+
+ const evoTypeDiv = evotPanel_L.appendChild(document.createElement("div"));
+ evoTypeDiv.className = "evo-type-div";
+ const evoType = evoTypeDiv.appendChild(document.createElement("span"));
+ evoType.className = "evo-type";
+ const monHead = evotPanel_L.appendChild(createCardHead(this.id));
+ monHead.className = "monster-head";
+
+ const monName = evotPanel_R.appendChild(document.createElement("div"));
+ monName.className = "monster-name";
+ monName.textContent = returnMonsterNameArr(this.card, currentLanguage.searchlist, currentDataSource.code)[0];
+
+ const evotMaterials = evotPanel_R.appendChild(document.createElement("ul"));
+ evotMaterials.className = "evo-materials";
+ this.card.evoMaterials.forEach(mid=>{
+ //const li = evotMaterials.appendChild(document.createElement("li"));
+ evotMaterials.appendChild(createCardHead(mid));
+ });
+
+ const evoSubEvo = tBox.appendChild(document.createElement("ul"));
+ evoSubEvo.className = "evo-subevo";
+ this.children.forEach(subEvo=>{
+ const li = evoSubEvo.appendChild(document.createElement("li"));
+ li.appendChild(subEvo.toListNode());
+ });
+ return tBox;
+ };
+}
+
//切换通用的切换className显示的函数
function toggleDomClassName(checkBox, className, checkedAdd = true, dom = document.body) {
if (!checkBox) return;
@@ -1156,6 +1248,29 @@ function initialize() {
return cli;
};
+ //显示进化树
+ const evolutionaryTreeMask = settingBox.querySelector(".mask-evolutionary-tree");
+
+ evolutionaryTreeMask.show = function(monid)
+ {
+ const maskContent = this.querySelector(".mask-content");
+ const fragment = document.createDocumentFragment();
+ const evoTree = new EvoTree(monid);
+
+ fragment.appendChild(evoTree.toListNode());
+ maskContent.innerHTML = "";
+ maskContent.appendChild(fragment);
+ this.classList.remove(className_displayNone);
+ }
+ evolutionaryTreeMask.close = function()
+ {
+ this.classList.add(className_displayNone);
+ }
+ const evolutionaryTreeMask_Close = evolutionaryTreeMask.querySelector(".mask-close");
+ evolutionaryTreeMask_Close.onclick = function(){evolutionaryTreeMask.close();};
+ const openEvolutionaryTree = settingBox.querySelector(".row-mon-id .open-evolutionary-tree");
+ openEvolutionaryTree.onclick = function() {evolutionaryTreeMask.show(editBox.mid)};
+
const searchOpen = settingBox.querySelector(".row-mon-id .open-search");
searchOpen.onclick = function() {
s_includeSuperAwoken.onchange();
@@ -1525,7 +1640,6 @@ function initialize() {
//id搜索
const monstersID = settingBox.querySelector(".row-mon-id .m-id");
- const btnSearchByString = settingBox.querySelector(".row-mon-id .search-by-string");
monstersID.onchange = function(e)
{
if (/^\d+$/.test(this.value)) {
@@ -1559,18 +1673,16 @@ function initialize() {
}
monstersID.oninput = monstersID.onchange;
monstersID.onkeydown = function(e) {
+ //如果键入回车,则执行字符串搜索
if (e.key == "Enter")
{
if (!/^\d+$/.test(this.value) && this.value.length > 0) //如果不是数字,且字符串长度大于0,则进行字符串搜索
{
- btnSearchByString.onclick();
+ searchByString(monstersID.value);
}
}
}
- //字符串搜索
- btnSearchByString.onclick = function() {
- searchByString(monstersID.value);
- };
+
//觉醒
const monEditAwokensRow = settingBox.querySelector(".row-mon-awoken");
const awokenCountLabel = monEditAwokensRow.querySelector(".awoken-count");
@@ -2371,7 +2483,7 @@ function editBoxChangeMonId(id) {
}
const evoCardUl = settingBox.querySelector(".row-mon-id .evo-card-list");
- evoCardUl.style.display = "none";
+ evoCardUl.classList.add(className_displayNone);
evoCardUl.innerHTML = ""; //据说直接清空HTML性能更好
const evoLinkCardsIdArray = Cards.filter(m=>m.evoRootId == card.evoRootId).map(m=>m.id); //筛选出相同进化链的
@@ -2388,7 +2500,7 @@ function editBoxChangeMonId(id) {
fragment.appendChild(cli);
});
evoCardUl.appendChild(fragment);
- evoCardUl.style.display = "block";
+ evoCardUl.classList.remove(className_displayNone);
openEvolutionaryTree.classList.remove(className_displayNone);
}else
{
diff --git a/solo.html b/solo.html
index 8eed1236..98cbd6d2 100644
--- a/solo.html
+++ b/solo.html
@@ -671,7 +671,7 @@ var formation = new Formation(teamsCount,6);
@@ -821,11 +821,11 @@ var formation = new Formation(teamsCount,6);
diff --git a/style.css b/style.css
index 5557a54d..51e6fda5 100644
--- a/style.css
+++ b/style.css
@@ -9,6 +9,17 @@
url("fonts/FOT-KurokaneStd-EB.eot") format('embedded-opentype'),
url("fonts/FOT-KurokaneStd-EB.svg") format('svg');
}
+@font-face {
+ font-family: 'zpix';
+ src:
+ url("fonts/zpix.woff2") format('woff2'),
+ url("fonts/zpix.woff") format('woff'),
+ url("fonts/zpix.ttf") format('truetype'),
+ url("fonts/zpix.eot?#font-spider") format('embedded-opentype'),
+ url("fonts/zpix.svg") format('svg');
+ font-weight: normal;
+ font-style: normal;
+ }
@keyframes loading-animate{
from {
transform: rotate(0deg);
@@ -764,7 +775,6 @@ ul{
color: white;
text-shadow: black 2px 2px 0;
min-height: 100px;
- margin: 5px 0;
background-image: linear-gradient(#798421,#394914);
border-top: #B1BB39 solid 4px;
border-bottom: #72941D ridge 7px;
@@ -773,7 +783,7 @@ ul{
}
.edit-box .search-box,
.edit-box .setting-box{
- padding: 0 10px;
+ padding: 10px;
position: relative;
}
/*.edit-box .setting-box .row-mon-id::before{
@@ -783,18 +793,8 @@ ul{
box-sizing: border-box;
font-size: 25px;
height: 40px;
- width: calc(100% - 50px);
-}
-.edit-box .setting-box .row-mon-id .search-by-string{
- box-sizing: border-box;
- font-size: 25px;
- height: 40px;
- width: 45px;
- margin-left: 5px;
- padding: 0;
-}
-.edit-box .setting-box .row-mon-id .search-by-string::before{
- content: "🔍";
+ width: 100%;
+ display: block;
}
.edit-box .setting-box .row-mon-id .unable-monster{
pointer-events: none;
@@ -827,7 +827,8 @@ ul{
}
.edit-box .setting-box .row-mon-id .evo-card-list .monster,
.edit-box .search-box .search-mon-list .monster,
-.detail-mon .monster
+.detail-mon .monster,
+.mask-evolutionary-tree .evo-panel-left>.monster-head>.monster
{
float: none;
transform: scale(0.75);
@@ -1883,7 +1884,6 @@ ul{
.edit-box .button-box{
border-top: black solid 3px;
background-color: rgba(0,0,0,0.5);
- margin-top: 10px;
padding: 5px;
height: 50px;
}
@@ -2115,15 +2115,6 @@ ul{
text-align: center;
margin-bottom: 5px;
}
-.dialog button
-{
- cursor: pointer;
- transition: transform 0.1s;
-}
-.dialog button:active
-{
- transform: scale(1.1);
-}
.dialog .dialog-content .additional-string
{
border-top: 2px solid white;
@@ -2138,14 +2129,20 @@ ul{
text-align: center;
margin-top:10px;
}
-.dialog .dialog-control button
+.brown-button
{
background-image: linear-gradient(to bottom,#C38E5F,#2F2008);
border: none;
border-radius: 5px;
padding: 2px;
+ cursor: pointer;
+ transition: transform 0.1s;
+}
+.brown-button:active
+{
+ transform: scale(1.1);
}
-.dialog .dialog-control button::before
+.brown-button::before
{
display: inline-block;
box-sizing: border-box;
@@ -2203,10 +2200,337 @@ ul{
box-sizing: border-box;
width: calc(100% - 50px * 1);
}
-.open-evolutionary-tree
+
+/*.open-evolutionary-tree::before
{
+ content: "⛓️进化链";
+}*/
+
+.mask-evolutionary-tree
+{
+ position: absolute;
+ width: 100%;
+ left: 0;
+ top: 0;
+ background-color: rgba(0,0,0,0.8);
}
-.open-evolutionary-tree::before
+.mask-content
{
- content: "⛓️进化链";
+ text-align: center;
+}
+.evo-box
+{
+ display: inline-block;
+ text-align: left;
+}
+.evo-panel,
+.evo-panel-left,
+.evo-panel-right
+{
+ display: inline-block;
+}
+.mask-evolutionary-tree .evo-panel-left>.monster-head
+{
+ display: inline-block;
+}
+.evo-materials>li
+{
+ display: inline-block;
+}
+.mask-evolutionary-tree .evo-materials .monster
+{
+ transform: scale(0.60);
+ margin: calc(-100px * (1 - 0.60) / 2);
+}
+.mask-evolutionary-tree .evo-panel-left>.monster-head>.monster .id
+{
+ bottom: 5px;
+ font-size: 20px;
+}
+.mask-evolutionary-tree .evo-materials .monster .id
+{
+ bottom: 5px;
+ font-size: 22px;
+}
+.evo-panel
+{
+ border:black 2px solid;
+ border-radius: 7px;
+}
+.evo-panel-left,
+.evo-panel-right
+{
+ border:#D19635 2px solid;
+ border-radius: 4px;
+ height: 100px;
+ vertical-align: top;
+}
+.evo-panel-left
+{
+ border-top-right-radius: unset;
+ border-bottom-right-radius: unset;
+ border-right: none;
+ background-image: linear-gradient(#A16928, #5F3D16);
+ padding: 0 2px;
+ text-align: center;
+}
+.evo-panel-right
+{
+ border-top-left-radius: unset;
+ border-bottom-left-radius: unset;
+ border-left: none;
+ background-image: url(images/slate.svg);
+}
+.evo-panel-right .monster-name
+{
+ font-family: var(--game-font-family);
+ font-size: 15px;
+ line-height: 15px;
+ background: #42341F;
+ border: 2px inset #F4F18E;
+ border-radius: 5px;
+ margin: 4px;
+ padding: 5px;
+}
+.evo-materials
+{
+ margin: 0 4px;
+}
+
+.evo-materials .null .monster
+{
+ opacity: 0.5;
+}
+.evo-materials>li
+{
+ margin: 1px;
+}
+.evo-subevo
+{
+ padding-left: 35px;
+ padding-top: 5px;
+}
+.evo-subevo>li
+{
+ position:relative;
+}
+
+.evo-subevo>li::before
+{
+ content:' ';
+ position:absolute;
+ top:0;
+ left:-20px;
+ width:15px;
+ height:100%;
+ border-left:3px solid #E88230;
+}
+.evo-subevo>li::after
+{
+ content:' ';
+ position:absolute;
+ top:43px;
+ left:-10px;
+ width:0;
+ height:0;
+ border-top: 8px solid transparent;
+ border-left: 10px solid #FFEE71;
+ border-bottom: 8px solid transparent;
+}
+.evo-subevo>li:last-child::before
+{
+ border-bottom: 3px solid #F3B750;
+ border-bottom-left-radius: 8px;
+ height:50px;
+}
+.evo-subevo>li:last-child>.evo-box::before
+{
+ display: none;
+}
+.evo-subevo>li>.evo-box::before
+{
+ content:' ';
+ position:absolute;
+ top:50px;
+ left:-20px;
+ width:18px;
+ border:none;
+ border-top:3px solid #E88230;
+
+}
+
+.evo-panel-left .evo-type
+{
+ font-family: var(--game-font-family);
+ font-size: 15px;
+ line-height: 15px;
+ display: inline-block;
+ position: relative;
+}
+.evo-panel-left .evo-type::before,
+.evo-panel-left .evo-type::after
+{
+}
+.evo-panel-left .evo-type::after
+{
+ -webkit-background-clip: text;
+ background-clip: text;
+ color: transparent;
+ font-family: var(--game-font-family);
+ font-size: 15px;
+ line-height: 15px;
+ position: absolute;
+ left: 0;
+}
+.evo-panel-left .evo-type::before
+{
+ /*text-shadow: black 1px 1px 0,black -1px 1px 0,black 1px -1px 0,black -1px -1px 0;*/
+ -webkit-text-stroke: 3px black;
+ text-stroke: 3px black;
+}
+
+/*.base .evo-type::before,
+.base .evo-type::after
+{
+ content: "基礎";
+}
+.evolution .evo-type::before,
+.evolution .evo-type::after
+{
+ content: "進化";
+}
+.ult-evo .evo-type::before,
+.ult-evo .evo-type::after
+{
+ content: "究極進化";
+}
+.reincarnation .evo-type::before,
+.reincarnation .evo-type::after
+{
+ content: "轉生進化";
+}
+.pixel-evo .evo-type::before,
+.pixel-evo .evo-type::after
+{
+ content: "像素進化";
+ font-family: "zpix";
+ font-weight: bold;
+}
+.assist-evo .evo-type::before,
+.assist-evo .evo-type::after
+{
+ content: "輔助進化";
+}
+.super-reincarnation .evo-type::before,
+.super-reincarnation .evo-type::after
+{
+ content: "超轉生進化";
+}
+.super-ult-evo .evo-type::before,
+.super-ult-evo .evo-type::after
+{
+ content: "超究極進化";
+}*/
+.pixel-evo .evo-type::before,
+.pixel-evo .evo-type::after
+{
+ font-family: "zpix";
+ font-weight: bold;
+}
+
+.base .evo-type::after
+{ /*基礎*/
+ background-image: linear-gradient(#FFFFBB, #FFFF88);
+}
+.base
+{
+ background-color: #DCB476;
+}
+.base .evo-panel-right
+{
+ border-color: #FDC686;
+}
+.evolution .evo-type::after
+{ /*進化*/
+ background-image: linear-gradient(#CCFF33, #88EE22);
+}
+.evolution
+{
+ background-color: #C49669;
+}
+.evolution .evo-panel-right
+{
+ border-color: #DEAA76;
+}
+.ult-evo .evo-type::after
+{ /*究極進化*/
+ background-image: linear-gradient(#FFFFAA 20%,#BB8800, #FFFFAA 80%);
+}
+.ult-evo
+{
+ background-color: #DDD844;
+}
+.ult-evo .evo-panel-right
+{
+ border-color: #FEF84F;
+}
+.reincarnation .evo-type::after
+{ /*轉生進化*/
+ background-image: linear-gradient(#00CCCC, #EEFFFF 50%,#AA8800 51%,#FFFFAA);
+}
+.reincarnation
+{
+ background-color: #579889;
+}
+.reincarnation .evo-panel-right
+{
+ border-color: #78B89A;
+}
+.pixel-evo .evo-type::after
+{ /*像素進化*/
+ background-image: linear-gradient(#FFDD77 33%, #EEBB33 34%, #EEBB33 66%, #BB7700 67%);
+}
+.pixel-evo
+{
+ background-color: #B1AB94;
+}
+.pixel-evo .evo-panel-right
+{
+ border-color: #CBC4AA;
+}
+.assist-evo .evo-type::after
+{ /*輔助進化*/
+ background-image: linear-gradient(#AAFF66, #557700);
+}
+.assist-evo
+{
+ background-color: #607F38;
+}
+.assist-evo .evo-panel-right
+{
+ border-color: #6F9241;
+}
+.super-reincarnation .evo-type::after
+{ /*超轉生進化*/
+ background-image: linear-gradient(#EE7700 ,#FFFF88 40%, #1155AA);
+}
+.super-reincarnation
+{
+ background-color: #C15644;
+}
+.super-reincarnation .evo-panel-right
+{
+ border-color: #DE634F;
+}
+.super-ult-evo .evo-type::after
+{ /*超究極進化*/
+ background-image: linear-gradient(#553300,#FFCC00 45%, #FFFF99 55%, #771100);
+}
+.super-ult-evo
+{
+ background-image: linear-gradient(#C1D515,#DD7003);
+}
+.super-ult-evo .evo-panel-right
+{
+ border-color: #DBE721;
}
\ No newline at end of file
diff --git a/triple.html b/triple.html
index ed829aa9..f4ff95d3 100644
--- a/triple.html
+++ b/triple.html
@@ -1366,7 +1366,7 @@ var formation = new Formation(teamsCount,6);
@@ -1516,11 +1516,11 @@ var formation = new Formation(teamsCount,6);