# Conflicts: # monsters-info/extractByNode.js # monsters-info/mon_en.json # monsters-info/mon_ja.json # monsters-info/mon_ko.json # script.js # universal_function.jstags/v3.0
| @@ -41,14 +41,20 @@ Copy the URL directly to share the Formation, or add a Bookmark to archives. You | |||
| * 使用后退即可撤销上一次修改 | |||
| Use back to undo the last edit | |||
|  | |||
| * 拖拽怪物头像即可快速切换位置 | |||
| Drag monster avatars to quickly switch positions | |||
|  | |||
| * 点击编辑界面的怪物头像可以跳转到攻略网站 | |||
| Click on the monster avatar in the editing interface to jump to the Guide. | |||
|  | |||
|  | |||
| 在队伍界面的怪物头像上点击鼠标中键也可以跳转到攻略网站 | |||
| Or click the middle mouse button on the monster avatar of the formation interface to jump to the Guide. | |||
|  | |||
| * 可以在编辑界面的怪物ID输入怪物名称来搜索怪物 | |||
| You can search for monsters by entering the monster name in the monster ID of the editing interface. | |||
|  | |||
| * 车队模式只显示部分杀潜觉以及共用的觉醒的统计,单人则全部显示。 | |||
| 2-Player Multi Games Mode only show the killer latent and several common awoken statistics, but solo mode shows all. | |||
| * 车队模式只显示部分共用的觉醒的统计,单人则全部显示。 | |||
| 2-Player Multi Games Mode only show several common awoken statistics, but solo mode shows all. | |||
| # 翻译我 | TRANSLATE ME | |||
| ## How to **Pull requests** | |||
| @@ -150,19 +150,59 @@ for (let li = 0;li < officialAPI.length; li++) | |||
| { | |||
| let otherLangs = officialAPI.concat(); //复制一份原始数组,储存其他语言 | |||
| let lang = otherLangs.splice(li,1)[0]; //删掉并取得当前的语言 | |||
| let monCard = lang.cards //储存输出内容 | |||
| for (let mi=0; mi<monCard.length; mi++) | |||
| let langCard = lang.cards,langCardCount = langCard.length; | |||
| for (let mi=0; mi<langCardCount; mi++) | |||
| { | |||
| let m = monCard[mi]; | |||
| let m = langCard[mi]; | |||
| let name = m.name; //当前语言的名字 | |||
| //名字对象 | |||
| otherLangs.forEach(function(otLang){ | |||
| let _m = otLang.cards[mi]; //获得这种其他语言的当前这个怪物数据 | |||
| if (_m && sameCard(m,_m)) //如果有这个怪物,且与原语言怪物是同一只 | |||
| let isSame = sameCard(m,_m); //与原语言怪物是否是同一只 | |||
| let l1 = lang.code, l2 = otLang.code; | |||
| if (!isSame && | |||
| ( | |||
| l1 == 'ja' && (l2 == 'en' || l2 == 'ko') || | |||
| l2 == 'ja' && (l1 == 'en' || l1 == 'ko') | |||
| ) //当同id两者不同,日服和英韩服比较时的一些人工确认相同的特殊id差异卡片 | |||
| ) | |||
| { | |||
| let otName = _m.name; //另一个语言的名字 | |||
| let langIsJa = l1 == 'ja' ? true : false; //原始语言是否是日语 | |||
| let diff = 0; //日语和其它语言的id差异 | |||
| switch(true) | |||
| { | |||
| case (langIsJa && mi>=671 && mi<= 680) || | |||
| (!langIsJa && mi>=1049 && mi<= 1058): | |||
| //神罗 日服 671-680 等于英韩服 1049-1058 | |||
| diff = 378; | |||
| break; | |||
| case (langIsJa && mi>=669 && mi<= 670) || | |||
| (!langIsJa && mi>=934 && mi<= 935): | |||
| //神罗 日服 669-670 等于英韩服 934-935 | |||
| diff = 265; | |||
| break; | |||
| case (langIsJa && mi>=924 && mi<= 935) || | |||
| (!langIsJa && mi>=669 && mi<= 680): | |||
| //蝙蝠侠 日服 924-935 等于英韩服 669-680 | |||
| diff = -255; | |||
| break; | |||
| case (langIsJa && mi>=1049 && mi<= 1058) || | |||
| (!langIsJa && mi>=924 && mi<= 933): | |||
| //蝙蝠侠 日服 1049-1058 等于英韩服 924-933 | |||
| diff = -125; | |||
| break; | |||
| } | |||
| if (diff != 0) | |||
| { | |||
| _m = langIsJa ? otLang.cards[mi + diff] : otLang.cards[mi - diff]; | |||
| isSame = true; | |||
| } | |||
| } | |||
| if (_m && isSame) //如果有这个怪物,且与原语言怪物是同一只 | |||
| { | |||
| let otName = _m.name; | |||
| if (!/^\*+/.test(name) && //名字不是星号开头 | |||
| !/^\*+/.test(otName) && //另一个语言名字不是星号开头 | |||
| !/^\?+/.test(name) && //名字不是问号开头 | |||
| @@ -95,7 +95,11 @@ function parseCard(data) { | |||
| card.collabId = data[i++]; //合作ID | |||
| const flags = data[i++]; //一个旗子? | |||
| card.unk08 = flags; //未知08 | |||
| card.canAssist = (flags & 1) !== 0; //是否能当二技 | |||
| card.canAssist = (flags & parseInt("1",2)) !== 0; //是否能当二技 | |||
| card.enabled = (flags & parseInt("10",2)) !== 0; //是否已启用 | |||
| card.overlay = card.types.some(t => { //这步还是猜测,是否能合并 | |||
| return t == 0 || t == 12 || t == 14; //0進化用;12能力覺醒用;14強化合成用;15販賣用 | |||
| }) && (flags & parseInt("1000",2)) === 0; //進化用、能力覺醒用、強化合成用,且flag有1000时 | |||
| card.altName = data[i++]; //替换名字 | |||
| card.limitBreakIncr = data[i++]; //110级增长 | |||
| card.unk08 = data[i++]; //未知08 | |||
| @@ -137,7 +141,7 @@ function g(id) | |||
| m[58+m[57]*3], //觉醒数 | |||
| m[14]+"-"+m[15]+"/"+m[17]+"-"+m[18]+"/"+m[20]+"-"+m[21], //三维 | |||
| m[superAwokenIdx+9], //110级增长 | |||
| m[superAwokenIdx+7]>2?"能":"不能", //二技 | |||
| m[superAwokenIdx+7] & 1?"能":"不能", //二技 | |||
| Math.round(m[11]/4), //1级经验,每级,直接乘 | |||
| Math.round(m[13]/10), //1级卖钱 | |||
| m[superAwokenIdx+4], //MP | |||
| @@ -186,6 +190,6 @@ window.onload = function() | |||
| mid = document.querySelector("#mid"); | |||
| } | |||
| </script> | |||
| <input type="number" id="mid"><input type="button" value="获取怪物" onclick="g(parseInt(mid.value));"> | |||
| <input type="number" id="mid"><input type="button" value="获取怪物" onclick="g(parseInt(mid.value,10));"> | |||
| </body> | |||
| </html> | |||
| @@ -35,7 +35,7 @@ var formation = new Formation(2,5); | |||
| <div class="formation-A-box"> | |||
| <ul class="formation-assist"> | |||
| <li class="member member-1 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,1,0);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -45,7 +45,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-2 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,1,1);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -55,7 +55,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-3 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,1,2);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -65,7 +65,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-4 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,1,3);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -75,7 +75,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-5 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,1,4);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -94,6 +94,8 @@ var formation = new Formation(2,5); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| <li class="latents latents-2"> | |||
| @@ -104,6 +106,8 @@ var formation = new Formation(2,5); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| <li class="latents latents-3"> | |||
| @@ -114,6 +118,8 @@ var formation = new Formation(2,5); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| <li class="latents latents-4"> | |||
| @@ -124,6 +130,8 @@ var formation = new Formation(2,5); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| <li class="latents latents-5"> | |||
| @@ -134,12 +142,14 @@ var formation = new Formation(2,5); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| </ul> | |||
| <ul class="formation-team"> | |||
| <li class="member member-1 team-leader null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,0,0);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -150,7 +160,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-2 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,0,1);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -161,7 +171,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-3 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,0,2);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -172,7 +182,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-4 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,0,3);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -183,7 +193,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-5 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,0,4);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -200,7 +210,7 @@ var formation = new Formation(2,5); | |||
| <div class="formation-B-box"> | |||
| <ul class="formation-team"> | |||
| <li class="member member-1 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(1,0,0);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -211,7 +221,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-2 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(1,0,1);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -222,7 +232,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-3 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(1,0,2);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -233,7 +243,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-4 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(1,0,3);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -244,7 +254,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-5 team-leader null"> | |||
| <a class="monster" target="_blank" onclick="editMon(1,0,4);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -264,6 +274,8 @@ var formation = new Formation(2,5); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| <li class="latents latents-2"> | |||
| @@ -274,6 +286,8 @@ var formation = new Formation(2,5); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| <li class="latents latents-3"> | |||
| @@ -284,6 +298,8 @@ var formation = new Formation(2,5); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| <li class="latents latents-4"> | |||
| @@ -294,6 +310,8 @@ var formation = new Formation(2,5); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| <li class="latents latents-5"> | |||
| @@ -304,12 +322,14 @@ var formation = new Formation(2,5); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| </ul> | |||
| <ul class="formation-assist"> | |||
| <li class="member member-1 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(1,1,0);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -319,7 +339,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-2 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(1,1,1);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -329,7 +349,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-3 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(1,1,2);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -339,7 +359,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-4 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(1,1,3);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -349,7 +369,7 @@ var formation = new Formation(2,5); | |||
| </a> | |||
| </li> | |||
| <li class="member member-5 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(1,1,4);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -449,6 +469,8 @@ var formation = new Formation(2,5); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| <ul class="m-latent-allowable-ul"> | |||
| <li class="latent-icon latent-icon-1" value="1"></li><!--HP--> | |||
| @@ -14,6 +14,10 @@ const dataSourceList = [ //几个不同的游戏服务区 | |||
| source:"퍼즐앤드래곤" | |||
| }, | |||
| ]; | |||
| var cardInterchange = { //记录DOM交换 | |||
| from:null, | |||
| to:null | |||
| }; | |||
| //队员基本的留空 | |||
| var Member = function(){ | |||
| this.id=0; | |||
| @@ -58,6 +62,16 @@ var MemberAssist = function(){ | |||
| } | |||
| MemberAssist.prototype = Object.create(Member.prototype); | |||
| MemberAssist.prototype.constructor = MemberAssist | |||
| MemberAssist.prototype.loadFromMember = function(m){ | |||
| if (m == undefined) //如果没有提供数据,直接返回默认 | |||
| { | |||
| return; | |||
| } | |||
| this.id = m.id; | |||
| if (m.level != undefined) this.level = m.level; | |||
| if (m.awoken != undefined) this.awoken = m.awoken; | |||
| if (m.plus != undefined && m.plus instanceof Array && m.plus.length>=3 && (m.plus[0]+m.plus[1]+m.plus[2])>0) this.plus = m.plus; | |||
| } | |||
| //正式队伍 | |||
| var MemberTeam = function(){ | |||
| this.latent = []; | |||
| @@ -67,6 +81,19 @@ var MemberTeam = function(){ | |||
| } | |||
| MemberTeam.prototype = Object.create(MemberAssist.prototype); | |||
| MemberTeam.prototype.constructor = MemberTeam; | |||
| MemberTeam.prototype.loadFromMember = function(m){ | |||
| if (m == undefined) //如果没有提供数据,直接返回默认 | |||
| { | |||
| return; | |||
| } | |||
| this.id = m.id; | |||
| if (m.level != undefined) this.level = m.level; | |||
| if (m.awoken != undefined) this.awoken = m.awoken; | |||
| if (m.plus != undefined && m.plus instanceof Array && m.plus.length>=3 && (m.plus[0]+m.plus[1]+m.plus[2])>0) this.plus = m.plus; | |||
| if (m.latent != undefined && m.latent instanceof Array && m.latent.length>=1) this.latent = m.latent; | |||
| if (m.sawoken != undefined) this.sawoken = m.sawoken; | |||
| if (m.ability != undefined && m.ability instanceof Array && m.plus.length>=3) this.ability = m.ability; | |||
| } | |||
| var Formation = function(teamCount,memberCount){ | |||
| this.title = "", | |||
| @@ -115,6 +142,17 @@ Formation.prototype.loadObj= function(f){ | |||
| }) | |||
| }); | |||
| } | |||
| //获取最大潜觉数量 | |||
| function getMaxLatentCount(id) | |||
| { //转生2和超转生3为8个格子 | |||
| function is8Latent(id) | |||
| { | |||
| let m = ms[id] || ms[0],mEvoType = m.evoType; | |||
| if (mEvoType == 2 || mEvoType == 3 || mEvoType==21){return true;} | |||
| return false; | |||
| } | |||
| return is8Latent(id) ? 8 : 6; | |||
| } | |||
| //创建一个新的怪物头像 | |||
| function createCardHead(id) | |||
| { | |||
| @@ -335,7 +373,44 @@ function initialize() | |||
| //队伍框 | |||
| var formationBox = document.querySelector(".formation-box"); | |||
| formationBox.formation = formation; | |||
| var formationA = formationBox.querySelector(".formation-box .formation-A-box"); | |||
| var formationB = formationBox.querySelector(".formation-box .formation-B-box"); | |||
| var fATeam = formationA.querySelectorAll(".formation-team .monster"); | |||
| var fAAssist = formationA.querySelectorAll(".formation-assist .monster"); | |||
| if (formationB) | |||
| { | |||
| var fBTeam = formationB.querySelectorAll(".formation-team .monster"); | |||
| var fBAssist = formationB.querySelectorAll(".formation-assist .monster"); | |||
| } | |||
| for (var ti=0;ti<fATeam.length;ti++) | |||
| { | |||
| fATeam[ti].onclick = clickMonHead; | |||
| fATeam[ti].ondragstart = dragStartMonHead; | |||
| fATeam[ti].ondragover = dropOverMonHead; | |||
| fATeam[ti].ondrop = dropMonHead; | |||
| fATeam[ti].draggable = true; | |||
| fAAssist[ti].onclick = clickMonHead; | |||
| fAAssist[ti].ondragstart = dragStartMonHead; | |||
| fAAssist[ti].ondrop = dropMonHead; | |||
| fAAssist[ti].ondragover = dropOverMonHead; | |||
| fAAssist[ti].draggable = true; | |||
| if (formationB) | |||
| { | |||
| fBTeam[ti].onclick = clickMonHead; | |||
| fBTeam[ti].ondragstart = dragStartMonHead; | |||
| fBTeam[ti].ondrop = dropMonHead; | |||
| fBTeam[ti].ondragover = dropOverMonHead; | |||
| fBTeam[ti].draggable = true; | |||
| fBAssist[ti].onclick = clickMonHead; | |||
| fBAssist[ti].ondragstart = dragStartMonHead; | |||
| fBAssist[ti].ondrop = dropMonHead; | |||
| fBAssist[ti].ondragover = dropOverMonHead; | |||
| fBAssist[ti].draggable = true; | |||
| } | |||
| } | |||
| //徽章 | |||
| var badges = Array.prototype.slice.call(formationBox.querySelectorAll(".formation-badge .badge-bg")); | |||
| badges.forEach(function(badge,bidx){ | |||
| @@ -494,18 +569,19 @@ function initialize() | |||
| var monEditLatents = Array.prototype.slice.call(monEditLatentUl.querySelectorAll("li")); | |||
| var monEditLatentAllowableUl = settingBox.querySelector(".m-latent-allowable-ul"); | |||
| var monEditLatentsAllowable = Array.prototype.slice.call(monEditLatentAllowableUl.querySelectorAll("li")); | |||
| editBox.refreshLatent = function(latent) //刷新潜觉 | |||
| editBox.refreshLatent = function(latent,monid) //刷新潜觉 | |||
| { | |||
| if (this.value<0) return; | |||
| let maxLatentCount = getMaxLatentCount(monid); //最大潜觉数量 | |||
| var usedHoleN = usedHole(latent); | |||
| for (var ai=0;ai<6;ai++) | |||
| for (var ai=0;ai<monEditLatents.length;ai++) | |||
| { | |||
| if (latent[ai]) | |||
| { | |||
| monEditLatents[ai].className = "latent-icon latent-icon-" + latent[ai]; | |||
| monEditLatents[ai].value = ai; | |||
| } | |||
| else if(ai<(6-usedHoleN+latent.length)) | |||
| else if(ai<(maxLatentCount-usedHoleN+latent.length)) | |||
| { | |||
| monEditLatents[ai].className = "latent-icon"; | |||
| monEditLatents[ai].value = -1; | |||
| @@ -523,7 +599,7 @@ function initialize() | |||
| var aIdx = parseInt(this.value); | |||
| editBox.latent.splice(aIdx,1); | |||
| editBox.reCalculateAbility(); | |||
| editBox.refreshLatent(editBox.latent); | |||
| editBox.refreshLatent(editBox.latent,editBox.mid); | |||
| } | |||
| }) | |||
| //可选觉醒的添加 | |||
| @@ -532,13 +608,14 @@ function initialize() | |||
| if (this.classList.contains("unselected-latent")) return; | |||
| var lIdx = parseInt(this.value); | |||
| var usedHoleN = usedHole(editBox.latent); | |||
| if (lIdx >= 12 && usedHoleN<=4) | |||
| let maxLatentCount = getMaxLatentCount(editBox.mid); //最大潜觉数量 | |||
| if (lIdx >= 12 && usedHoleN<=(maxLatentCount-2)) | |||
| editBox.latent.push(lIdx); | |||
| else if (lIdx < 12 && usedHoleN<=5) | |||
| else if (lIdx < 12 && usedHoleN<=(maxLatentCount-1)) | |||
| editBox.latent.push(lIdx); | |||
| editBox.reCalculateAbility(); | |||
| editBox.refreshLatent(editBox.latent); | |||
| editBox.refreshLatent(editBox.latent,editBox.mid); | |||
| } | |||
| }) | |||
| @@ -692,6 +769,72 @@ function initialize() | |||
| languageJS.type = "text/javascript"; | |||
| languageJS.src = "languages/"+currentLanguage.i18n+".js"; | |||
| } | |||
| //编辑界面点击每个怪物的头像的处理 | |||
| function clickMonHead() | |||
| { | |||
| let team = parseInt(this.getAttribute("data-team"),10); | |||
| let assist = parseInt(this.getAttribute("data-assist"),10); | |||
| let index = parseInt(this.getAttribute("data-index"),10); | |||
| editMon(team,assist,index); | |||
| return false; //没有false将会打开链接 | |||
| } | |||
| //编辑界面每个怪物的头像的拖动 | |||
| function dragStartMonHead(e) | |||
| { | |||
| let team = parseInt(this.getAttribute("data-team"),10); | |||
| let assist = parseInt(this.getAttribute("data-assist"),10); | |||
| let index = parseInt(this.getAttribute("data-index"),10); | |||
| e.dataTransfer.setData('from',[team,assist,index].join(",")); | |||
| } | |||
| //编辑界面每个怪物的头像的经过,阻止事件发生 | |||
| function dropOverMonHead(e) | |||
| { | |||
| e.preventDefault(); | |||
| } | |||
| //编辑界面每个怪物的头像的放下 | |||
| function dropMonHead(e) | |||
| { | |||
| let dataFrom = e.dataTransfer.getData('from').split(",").map((i)=>{return parseInt(i,10);}); | |||
| let team = parseInt(this.getAttribute("data-team"),10); | |||
| let assist = parseInt(this.getAttribute("data-assist"),10); | |||
| let index = parseInt(this.getAttribute("data-index"),10); | |||
| let dataTo = [team,assist,index]; | |||
| if ((dataTo[0] != dataFrom[0]) | |||
| || (dataTo[1] != dataFrom[1]) | |||
| || (dataTo[2] != dataFrom[2])) | |||
| { //必须有所不同才继续交换 | |||
| interchangeCard(dataFrom,dataTo); | |||
| } | |||
| return false; //没有false将会打开链接 | |||
| } | |||
| function interchangeCard(formArr,toArr) | |||
| { | |||
| function changeType(member,isAssist) | |||
| { | |||
| if (member.id == 0 || (isAssist && member.id == -1)) | |||
| { | |||
| return new Member; | |||
| }else | |||
| { | |||
| let newMember = isAssist ? new MemberTeam() : new MemberAssist(); | |||
| newMember.loadFromMember(member); | |||
| return newMember; | |||
| } | |||
| } | |||
| let from = formation.team[formArr[0]][formArr[1]][formArr[2]]; | |||
| let to = formation.team[toArr[0]][toArr[1]][toArr[2]]; | |||
| if(formArr[1] != toArr[1]) //从武器拖到非武器才改变类型 | |||
| { | |||
| from = changeType(from,formArr[1]); | |||
| to = changeType(to,toArr[1]); | |||
| } | |||
| formation.team[toArr[0]][toArr[1]][toArr[2]] = from; | |||
| formation.team[formArr[0]][formArr[1]][formArr[2]] = to; | |||
| creatNewUrl(); //刷新URL | |||
| refreshAll(formation); //刷新全部 | |||
| } | |||
| //改变一个怪物头像 | |||
| function changeid(mon,monDom,latentDom) | |||
| { | |||
| @@ -816,20 +959,25 @@ function changeid(mon,monDom,latentDom) | |||
| } | |||
| if (latentDom && mon.latent) //如果提供了潜觉 | |||
| { | |||
| var latent = mon.latent.sort(function(a,b){return b-a;}); | |||
| var latent = mon.latent.sort(function(a,b){ | |||
| if(b>=12 && a<12) {return 1;} //如果大于12,就排到前面 | |||
| else if(b<12 && a>=12) {return -1} //如果小于12就排到后面 | |||
| else {return 0} //其他情况不变 | |||
| }); | |||
| if (latent.length < 1) | |||
| latentDom.classList.add("display-none"); | |||
| else | |||
| latentDom.classList.remove("display-none"); | |||
| var latentDoms = Array.prototype.slice.call(latentDom.querySelectorAll("li")); | |||
| var usedHoleN = usedHole(latent); | |||
| for (var ai=0;ai<6;ai++) | |||
| let maxLatentCount = getMaxLatentCount(mon.id); //最大潜觉数量 | |||
| for (var ai=0;ai<latentDoms.length;ai++) | |||
| { | |||
| if (latent[ai]) | |||
| { | |||
| latentDoms[ai].className = "latent-icon latent-icon-" + latent[ai]; | |||
| } | |||
| else if(ai<(6-usedHoleN+latent.length)) | |||
| else if(ai<(maxLatentCount-usedHoleN+latent.length)) | |||
| { | |||
| latentDoms[ai].className = "latent-icon"; | |||
| } | |||
| @@ -845,6 +993,7 @@ function editMon(AorB,isAssist,tempIdx) | |||
| { | |||
| //数据 | |||
| var mD = formation.team[AorB][isAssist][tempIdx]; | |||
| let card = ms[mD.id] || ms[0]; | |||
| //对应的Dom | |||
| var formationBox = AorB?document.querySelector(".formation-box .formation-B-box"):document.querySelector(".formation-box .formation-A-box"); | |||
| @@ -892,7 +1041,7 @@ function editMon(AorB,isAssist,tempIdx) | |||
| if (!isAssist) | |||
| { | |||
| editBox.latent = mD.latent?mD.latent.concat():[]; | |||
| editBox.refreshLatent(editBox.latent); | |||
| editBox.refreshLatent(editBox.latent,mD.id); | |||
| btnDelay.classList.add("display-none"); | |||
| settingBox.querySelector(".row-mon-latent").classList.remove("display-none"); | |||
| if (Cards[mD.id].sAwoken)settingBox.querySelector(".row-mon-super-awoken").classList.remove("display-none"); | |||
| @@ -1047,7 +1196,7 @@ function editBoxChangeMonId(id) | |||
| } | |||
| } | |||
| editBox.latent.length = 0; | |||
| editBox.refreshLatent(editBox.latent); | |||
| editBox.refreshLatent(editBox.latent,id); | |||
| editBox.reCalculateAbility(); | |||
| } | |||
| //刷新整个队伍 | |||
| @@ -1146,7 +1295,9 @@ function refreshAbility(dom,team,idx){ | |||
| //基底三维,如果辅助是武器,还要加上辅助的觉醒 | |||
| var mainAbility = calculateAbility(mainMD.id,mainMD.level,mainMD.plus,mainMD.awoken,mainMD.latent,assistMD.id,assistMD.awoken); | |||
| //辅助增加的三维,如果辅助的主属性相等,辅助宠物只计算等级和加值,不计算觉醒 | |||
| var assistAbility = (assistMD.id > 0 && Cards[mainMD.id].ppt[0]==Cards[assistMD.id].ppt[0]) | |||
| let mainCard = ms[mainMD.id] || ms[0]; | |||
| let assistCard = ms[assistMD.id] || ms[0]; | |||
| var assistAbility = (assistMD.id > 0 && mainCard.attrs[0]==assistCard.attrs[0]) | |||
| ?calculateAbility(assistMD.id,assistMD.level,assistMD.plus,null,null) | |||
| :[0,0,0]; | |||
| if (mainAbility && mainMD.ability) | |||
| @@ -56,7 +56,7 @@ var formation = new Formation(1,6); | |||
| </ul> | |||
| <ul class="formation-assist"> | |||
| <li class="member member-1 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,1,0);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -66,7 +66,7 @@ var formation = new Formation(1,6); | |||
| </a> | |||
| </li> | |||
| <li class="member member-2 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,1,1);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -76,7 +76,7 @@ var formation = new Formation(1,6); | |||
| </a> | |||
| </li> | |||
| <li class="member member-3 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,1,2);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -86,7 +86,7 @@ var formation = new Formation(1,6); | |||
| </a> | |||
| </li> | |||
| <li class="member member-4 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,1,3);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -96,7 +96,7 @@ var formation = new Formation(1,6); | |||
| </a> | |||
| </li> | |||
| <li class="member member-5 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,1,4);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -106,7 +106,7 @@ var formation = new Formation(1,6); | |||
| </a> | |||
| </li> | |||
| <li class="member member-6 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,1,5);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -125,6 +125,8 @@ var formation = new Formation(1,6); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| <li class="latents latents-2"> | |||
| @@ -135,6 +137,8 @@ var formation = new Formation(1,6); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| <li class="latents latents-3"> | |||
| @@ -145,6 +149,8 @@ var formation = new Formation(1,6); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| <li class="latents latents-4"> | |||
| @@ -155,6 +161,8 @@ var formation = new Formation(1,6); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| <li class="latents latents-5"> | |||
| @@ -165,6 +173,8 @@ var formation = new Formation(1,6); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| <li class="latents latents-6"> | |||
| @@ -175,12 +185,14 @@ var formation = new Formation(1,6); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| </li> | |||
| </ul> | |||
| <ul class="formation-team"> | |||
| <li class="member member-1 team-leader null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,0,0);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -191,7 +203,7 @@ var formation = new Formation(1,6); | |||
| </a> | |||
| </li> | |||
| <li class="member member-2 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,0,1);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -202,7 +214,7 @@ var formation = new Formation(1,6); | |||
| </a> | |||
| </li> | |||
| <li class="member member-3 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,0,2);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -213,7 +225,7 @@ var formation = new Formation(1,6); | |||
| </a> | |||
| </li> | |||
| <li class="member member-4 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,0,3);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -224,7 +236,7 @@ var formation = new Formation(1,6); | |||
| </a> | |||
| </li> | |||
| <li class="member member-5 null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,0,4);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -235,7 +247,7 @@ var formation = new Formation(1,6); | |||
| </a> | |||
| </li> | |||
| <li class="member member-6 team-leader null"> | |||
| <a class="monster" target="_blank" onclick="editMon(0,0,5);return false;"> | |||
| <a class="monster" 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 class="_297">297</div></div> | |||
| @@ -421,6 +433,8 @@ var formation = new Formation(1,6); | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| <li class="latent-icon"></li> | |||
| </ul> | |||
| <ul class="m-latent-allowable-ul"> | |||
| <li class="latent-icon latent-icon-1" value="1"></li><!--HP--> | |||