Browse Source

添加完整的同时搜索等效觉醒

tags/v8.0
枫谷剑仙 6 years ago
parent
commit
27e7dad936
9 changed files with 61 additions and 27 deletions
  1. +3
    -0
      languages/en.css
  2. +3
    -0
      languages/ja.css
  3. +3
    -0
      languages/ko.css
  4. +3
    -0
      languages/zh-TW.css
  5. +4
    -4
      multi.html
  6. +12
    -8
      script.js
  7. +2
    -3
      solo.html
  8. +5
    -3
      triple.html
  9. +26
    -9
      universal_function.js

+ 3
- 0
languages/en.css View File

@@ -248,6 +248,9 @@
.search-box .attrs .fix-main-color-label::after{
content: "Fix attr-1 for main-attr, attr-2 for sub-attr.";
}
.search-box .consider-equivalent-awoken-label::after{
content: "Search for Equivalent Awoken";
}
.attrs .attr-all::before{
content: "All";
}


+ 3
- 0
languages/ja.css View File

@@ -241,6 +241,9 @@
.search-box .attrs .fix-main-color-label::after{
content: "限定 属性 1->主属性,属性 2->副属性";
}
.search-box .consider-equivalent-awoken-label::after{
content: "同時に同等の覚醒を検索";
}
.attrs .attr-all::before{
content: "無制限";
}


+ 3
- 0
languages/ko.css View File

@@ -241,6 +241,9 @@
.search-box .attrs .fix-main-color-label::after{
content: "제한 속성 1은 기본 속성 이며 속성 2 하위 속성입니다.";
}
.search-box .consider-equivalent-awoken-label::after{
content: "동시에 해당 경계를 각성";
}
.attrs .attr-all::before{
content: "무제한";
}


+ 3
- 0
languages/zh-TW.css View File

@@ -247,6 +247,9 @@
.search-box .attrs .fix-main-color-label::after{
content: "限制屬性 1 爲主屬性,屬性 2 爲副屬性";
}
.search-box .consider-equivalent-awoken-label::after{
content: "同時搜索等效覺醒";
}
.attrs .attr-all::before{
content: "不限";
}


+ 4
- 4
multi.html View File

@@ -11,7 +11,7 @@
<script type="text/javascript" src="languages/language-list.js"></script>
<script type="text/javascript" src="universal_function.js"></script>
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="http://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<script type="text/javascript" src="html2canvas.min.js"></script>
<script type="text/javascript">
const solo = false;
const teamsCount = 2;
@@ -36,7 +36,7 @@ var formation = new Formation(teamsCount,5);
<br>
<input type="checkbox" name="show-mon-id" class="config-checkbox-ipt" id="show-mon-id" onclick="toggleShowMonId();" checked><label class="config-checkbox-lbl show-mon-id-lbl" for="show-mon-id"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="btn-show-mon-skill-cd" class="config-checkbox-ipt" id="btn-show-mon-skill-cd" onclick="toggleShowMonSkillCd();"><label class="config-checkbox-lbl btn-show-mon-skill-cd-lbl" for="btn-show-mon-skill-cd"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="change-swap-to-copy" class="config-checkbox-ipt" id="change-swap-to-copy"><label class="config-checkbox-lbl" for="change-swap-to-copy"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="change-swap-to-copy" class="config-checkbox-ipt" id="change-swap-to-copy"><label class="config-checkbox-lbl change-swap-to-copy-lbl" for="change-swap-to-copy"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
<div class="status"><span class="icon"></span><span class="text"></span></div>
</div>
@@ -481,7 +481,7 @@ var formation = new Formation(teamsCount,5);
<li><input type="radio" name="attr-2" class="attr-radio" value="4" id="search-attr-2-4" /><label class="attr-t4" for="search-attr-2-4"><!--暗--></label></li>
<li><input type="radio" name="attr-2" class="attr-radio" value="-1" id="search-attr-2-none" /><label class="attr-none" for="search-attr-2-none"><!--无--></label></li>
</ul>
<label class="fix-main-color-label"><input type="checkbox" name="fix-main-color" class="fix-main-color" /></label>
<input type="checkbox" name="fix-main-color" class="config-checkbox-ipt" id="fix-main-color" checked><label class="config-checkbox-lbl fix-main-color-label" for="fix-main-color"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
<div class="types-div"><!--类型-->
<ul class="type-list">
@@ -501,6 +501,7 @@ var formation = new Formation(teamsCount,5);
</div>
<div class="awoken-div"><!--觉醒-->
<button class="awoken-clear" ></button>
<input type="checkbox" name="consider-equivalent-awoken" class="config-checkbox-ipt" id="consider-equivalent-awoken"><label class="config-checkbox-lbl consider-equivalent-awoken-label" for="consider-equivalent-awoken"><div class="config-checkbox-lbl-cicle"></div></label>
<ul class="awoken-ul">
<li class="awoken-count zero"><button class="awoken-icon awoken-1" value="1"></button><button class="count" value="1">0</button></li><!--HP+-->
<li class="awoken-count zero"><button class="awoken-icon awoken-2" value="2"></button><button class="count" value="2">0</button></li><!--攻击+-->
@@ -782,7 +783,6 @@ var formation = new Formation(teamsCount,5);
<div class="skill-datail"></div>
</div>
</div>
</div>
<div class="button-box">
<button class="button-null"><!--留空格子--></button>


+ 12
- 8
script.js View File

@@ -1991,15 +1991,19 @@ function refreshFormationAwokenCount(awokenDom,teams){
const aicon = awokenUL.querySelector(".awoken-" + ai);
if (!aicon) continue; //如果没有这个觉醒图,直接跳过
//搜索等效觉醒
if (equivalent_awoken_small.indexOf(ai) >= 0)
const equalIndex = equivalent_awoken.findIndex(eak=>eak.small === ai || eak.big === ai);
if (equalIndex >= 0)
{
const equivalentAwoken = equivalent_awoken.filter((ak)=>{return ak.small == ai;})[0];
const totalNum = awokenCountInFormation(teams, equivalentAwoken.small, solo) +
awokenCountInFormation(teams, equivalentAwoken.big, solo) * equivalentAwoken.times;
setCount(aicon, totalNum);
}else if(equivalent_awoken_big.indexOf(ai) >= 0)
{
continue;
const equivalentAwoken = equivalent_awoken[equalIndex];
if (equivalentAwoken.small === ai)
{
const totalNum = awokenCountInFormation(teams, equivalentAwoken.small, solo) +
awokenCountInFormation(teams, equivalentAwoken.big, solo) * equivalentAwoken.times;
setCount(aicon, totalNum);
}else
{
continue;
}
}else
{
setCount(aicon,awokenCountInFormation(teams,ai,solo));


+ 2
- 3
solo.html View File

@@ -394,7 +394,6 @@ var formation = new Formation(teamsCount,6);
<div class="monster-id"></div>
<div class="monster-rare"></div>
<div class="monster-cost"></div>
<!--<div class="monster-exp"></div>-->
</div>
<div class="monsterinfo-line">
<div class="monster-name"></div>
@@ -430,7 +429,7 @@ var formation = new Formation(teamsCount,6);
<li><input type="radio" name="attr-2" class="attr-radio" value="4" id="search-attr-2-4" /><label class="attr-t4" for="search-attr-2-4"><!--暗--></label></li>
<li><input type="radio" name="attr-2" class="attr-radio" value="-1" id="search-attr-2-none" /><label class="attr-none" for="search-attr-2-none"><!--无--></label></li>
</ul>
<input type="checkbox" name="fix-main-color" class="config-checkbox-ipt" id="fix-main-color"><label class="config-checkbox-lbl fix-main-color-label" for="fix-main-color"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="fix-main-color" class="config-checkbox-ipt" id="fix-main-color" checked><label class="config-checkbox-lbl fix-main-color-label" for="fix-main-color"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
<div class="types-div"><!--类型-->
<ul class="type-list">
@@ -450,7 +449,7 @@ var formation = new Formation(teamsCount,6);
</div>
<div class="awoken-div"><!--觉醒-->
<button class="awoken-clear" ></button>
<input type="checkbox" name="consider-equivalent-awoken" class="config-checkbox-ipt" id="consider-equivalent-awoken" checked><label class="config-checkbox-lbl consider-equivalent-awoken-label" for="consider-equivalent-awoken"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="consider-equivalent-awoken" class="config-checkbox-ipt" id="consider-equivalent-awoken"><label class="config-checkbox-lbl consider-equivalent-awoken-label" for="consider-equivalent-awoken"><div class="config-checkbox-lbl-cicle"></div></label>
<ul class="awoken-ul">
<li class="awoken-count zero"><button class="awoken-icon awoken-1" value="1"></button><button class="count" value="1">0</button></li><!--HP+-->
<li class="awoken-count zero"><button class="awoken-icon awoken-2" value="2"></button><button class="count" value="2">0</button></li><!--攻击+-->


+ 5
- 3
triple.html View File

@@ -11,7 +11,7 @@
<script type="text/javascript" src="languages/language-list.js"></script>
<script type="text/javascript" src="universal_function.js"></script>
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="http://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<script type="text/javascript" src="html2canvas.min.js"></script>
<script type="text/javascript">
const solo = false;
const teamsCount = 3;
@@ -22,6 +22,7 @@ var formation = new Formation(teamsCount,6);
width: 756px;
min-width: 756px;
}
/*队伍之间的分割线*/
.team-bigbox{
border-top: 1px solid gray;
}
@@ -48,7 +49,7 @@ var formation = new Formation(teamsCount,6);
<br>
<input type="checkbox" name="show-mon-id" class="config-checkbox-ipt" id="show-mon-id" onclick="toggleShowMonId();" checked><label class="config-checkbox-lbl show-mon-id-lbl" for="show-mon-id"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="btn-show-mon-skill-cd" class="config-checkbox-ipt" id="btn-show-mon-skill-cd" onclick="toggleShowMonSkillCd();"><label class="config-checkbox-lbl btn-show-mon-skill-cd-lbl" for="btn-show-mon-skill-cd"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="change-swap-to-copy" class="config-checkbox-ipt" id="change-swap-to-copy"><label class="config-checkbox-lbl" for="change-swap-to-copy"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" name="change-swap-to-copy" class="config-checkbox-ipt" id="change-swap-to-copy"><label class="config-checkbox-lbl change-swap-to-copy-lbl" for="change-swap-to-copy"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
<div class="status"><span class="icon"></span><span class="text"></span></div>
</div>
@@ -1066,7 +1067,7 @@ var formation = new Formation(teamsCount,6);
<li><input type="radio" name="attr-2" class="attr-radio" value="4" id="search-attr-2-4" /><label class="attr-t4" for="search-attr-2-4"><!--暗--></label></li>
<li><input type="radio" name="attr-2" class="attr-radio" value="-1" id="search-attr-2-none" /><label class="attr-none" for="search-attr-2-none"><!--无--></label></li>
</ul>
<label class="fix-main-color-label"><input type="checkbox" name="fix-main-color" class="fix-main-color" /></label>
<input type="checkbox" name="fix-main-color" class="config-checkbox-ipt" id="fix-main-color" checked><label class="config-checkbox-lbl fix-main-color-label" for="fix-main-color"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
<div class="types-div"><!--类型-->
<ul class="type-list">
@@ -1086,6 +1087,7 @@ var formation = new Formation(teamsCount,6);
</div>
<div class="awoken-div"><!--觉醒-->
<button class="awoken-clear" ></button>
<input type="checkbox" name="consider-equivalent-awoken" class="config-checkbox-ipt" id="consider-equivalent-awoken"><label class="config-checkbox-lbl consider-equivalent-awoken-label" for="consider-equivalent-awoken"><div class="config-checkbox-lbl-cicle"></div></label>
<ul class="awoken-ul">
<li class="awoken-count zero"><button class="awoken-icon awoken-1" value="1"></button><button class="count" value="1">0</button></li><!--HP+-->
<li class="awoken-count zero"><button class="awoken-icon awoken-2" value="2"></button><button class="count" value="2">0</button></li><!--攻击+-->


+ 26
- 9
universal_function.js View File

@@ -23,8 +23,6 @@ const equivalent_awoken = [
{small:19,big:53,times:2}, //手指
{small:21,big:56,times:2}, //SB
];
const equivalent_awoken_small = equivalent_awoken.map(eak=>{return eak.small;});
const equivalent_awoken_big = equivalent_awoken.map(eak=>{return eak.big;});
//仿GM_xmlhttpRequest函数v1.3
const GM_xmlhttpRequest = function(GM_param) {
const xhr = new XMLHttpRequest(); //创建XMLHttpRequest对象
@@ -330,21 +328,36 @@ function searchCards(cards,attr1,attr2,fixMainColor,types,awokens,sawokens,equal
cardsRange = cardsRange.filter(c=>{return types.some(t=>{return c.types.indexOf(t)>=0;});});
}
//觉醒
//等效觉醒时,事先去除大觉醒
if (equalAk)
{
const bigEqualAwokens = awokens.filter(ak => equivalent_awoken.findIndex(eak => eak.big === ak.id) >= 0); //所有存在的大觉醒
bigEqualAwokens.forEach(bak=>{
const equivalentAwoken = equivalent_awoken.find(eak => eak.big === bak.id);
let smallEqualAwoken = awokens.find(ak => equivalentAwoken.small === ak.id);
if (!smallEqualAwoken)
{
smallEqualAwoken = {id:equivalentAwoken.small,num:0}; //如果没有就新建一个
awokens.push(smallEqualAwoken);
}
smallEqualAwoken.num += bak.num * equivalentAwoken.times; //小觉醒添加大觉醒的数字
});
awokens = awokens.filter(ak => equivalent_awoken.findIndex(eak => eak.big === ak.id) < 0); //去除大觉醒
}
if (awokens.length>0)
{
cardsRange = cardsRange.filter(card=>{return awokens.every(ak=>{
cardsRange = cardsRange.filter(card => {return awokens.every(ak=>{
if (equalAk) //如果开启等效觉醒
{
//搜索等效觉醒
if (equivalent_awoken_small.indexOf(ak.id) >= 0)
const equivalentAwoken = equivalent_awoken.find(eak => eak.small === ak.id);
if (equivalentAwoken)
{
const equivalentAwoken = equivalent_awoken.filter((eak)=>{return eak.small == ak.id;})[0];
const totalNum = card.awakenings.filter(cak=>{return cak == equivalentAwoken.small;}).length +
card.awakenings.filter(cak=>{return cak == equivalentAwoken.big;}).length * equivalentAwoken.times;
return totalNum >= ak.num;
}else if(equivalent_awoken_big.indexOf(ak.id) >= 0)
{ //属于大觉醒,直接忽略
return true;
}
}
return card.awakenings.filter(cak=>{return cak == ak.id;}).length >= ak.num;
@@ -353,7 +366,11 @@ function searchCards(cards,attr1,attr2,fixMainColor,types,awokens,sawokens,equal
//超觉醒
if (sawokens.length>0)
{
cardsRange = cardsRange.filter(card=>{return sawokens.some(sak=>{return card.superAwakenings.indexOf(sak)>=0;});});
cardsRange = cardsRange.filter(card=>{return sawokens.some(sak=>{
const equivalentAwoken = equivalent_awoken.find(eak => eak.small === sak);
return card.superAwakenings.indexOf(sak)>=0 ||
equalAk && equivalentAwoken && card.superAwakenings.indexOf(equivalentAwoken.big)>=0; //如果开启等效觉醒
});});
}
return cardsRange;
}


Loading…
Cancel
Save