diff --git a/index.html b/index.html index b73156e2..b41062ab 100644 --- a/index.html +++ b/index.html @@ -450,9 +450,9 @@ var formation = {
diff --git a/languages/en.css b/languages/en.css index ede1560e..eedaf996 100644 --- a/languages/en.css +++ b/languages/en.css @@ -66,9 +66,7 @@ .m-plus-rcv-li::before{ content: "RCV"; } -.m-plus-hp-btn-99::before, -.m-plus-atk-btn-99::before, -.m-plus-rcv-btn-99::before, +.m-plus-btn::before, .m-plus-btn-297::before{ content: "+"; } diff --git a/languages/ja.css b/languages/ja.css index a330f8d2..9617323b 100644 --- a/languages/ja.css +++ b/languages/ja.css @@ -65,9 +65,7 @@ .m-plus-rcv-li::before{ content: "回復"; } -.m-plus-hp-btn-99::before, -.m-plus-atk-btn-99::before, -.m-plus-rcv-btn-99::before, +.m-plus-btn::before, .m-plus-btn-297::before{ content: "+"; } diff --git a/languages/ko.css b/languages/ko.css index bd4f7098..1dac2b1c 100644 --- a/languages/ko.css +++ b/languages/ko.css @@ -65,9 +65,7 @@ .m-plus-rcv-li::before{ content: "회복"; } -.m-plus-hp-btn-99::before, -.m-plus-atk-btn-99::before, -.m-plus-rcv-btn-99::before, +.m-plus-btn::before, .m-plus-btn-297::before{ content: "+"; } diff --git a/languages/zh-TW.css b/languages/zh-TW.css index 566ed78b..c9c180d3 100644 --- a/languages/zh-TW.css +++ b/languages/zh-TW.css @@ -65,9 +65,7 @@ .m-plus-rcv-li::before{ content: "回復"; } -.m-plus-hp-btn-99::before, -.m-plus-atk-btn-99::before, -.m-plus-rcv-btn-99::before, +.m-plus-btn::before, .m-plus-btn-297::before{ content: "+"; } diff --git a/languages/zh.css b/languages/zh.css index 98895908..89b96ba2 100644 --- a/languages/zh.css +++ b/languages/zh.css @@ -65,9 +65,7 @@ .m-plus-rcv-li::before{ content: "回复"; } -.m-plus-hp-btn-99::before, -.m-plus-atk-btn-99::before, -.m-plus-rcv-btn-99::before, +.m-plus-btn::before, .m-plus-btn-297::before{ content: "+"; } diff --git a/monsters-info/extractByNode.js b/monsters-info/extractByNode.js index 880fe225..081c2784 100644 --- a/monsters-info/extractByNode.js +++ b/monsters-info/extractByNode.js @@ -53,23 +53,33 @@ for (var mi=0;mi0?(m[awokenCIdx+1+m[awokenCIdx]].split(",").map(function(ns){return parseInt(ns);})):null; //超觉醒 + var awokenCIdx = 58+m[57]*3; //awoken Count Index,觉醒数量的序号 + var awoken = m.slice(awokenCIdx+1,awokenCIdx+1+m[awokenCIdx]); //具体觉醒编号的数组 var mon = { id: m[0], name: nameObj, ppt: [m[2],m[3]], //属性property type: type, - rare: m[7], - awoken: awoken, - maxLv: m[m.length-3]>0?110:m[10], + rare: m[7], //稀有度 + awoken: awoken, //觉醒 + maxLv: m[10], assist: (m[m.length-5]>2 && [303,305,307,600,602].indexOf(m[0])<0)?1:0, //但是5种小企鹅是特殊情况 + ability: [ //三维 + [m[14],m[15]], //HP + [m[17],m[18]], //ATK + [m[20],m[21]], //RCV + ], } - if (mon.maxLv>99 && superAwoken) + if (m[m.length-3]>0) //如果可以110级 { - mon.sAwoken = superAwoken; + mon.a110 = m[m.length-3]; + var superAwokenIdx = awokenCIdx+1+m[awokenCIdx]; //super awoken Index,超觉醒的序号 + var superAwoken = m[superAwokenIdx].length>0?(m[superAwokenIdx].split(",").map(function(sa){return parseInt(sa);})):null; //超觉醒 + if (superAwoken) + { + mon.sAwoken = superAwoken; + } } mArr.push(mon); } diff --git a/monsters-info/official-API/test-mon.html b/monsters-info/official-API/test-mon.html index d5b7d20d..37f06a66 100644 --- a/monsters-info/official-API/test-mon.html +++ b/monsters-info/official-API/test-mon.html @@ -49,7 +49,7 @@ function g(id) m[7], //星级 m[8], //cost m[58+m[57]*3], //觉醒数 - m[14]+"-"+m[15]+"/"+m[14]+"-"+m[17]+"/"+m[20]+"-"+m[21], //三维 + m[14]+"-"+m[15]+"/"+m[17]+"-"+m[18]+"/"+m[20]+"-"+m[21], //三维 m[m.length-3], //110级增长 m[m.length-5]>2?"能":"不能", //二技 Math.round(m[11]/4), //1级经验,每级,直接乘 diff --git a/script.js b/script.js index 69585131..e8367e6c 100644 --- a/script.js +++ b/script.js @@ -140,6 +140,8 @@ function initialize() //编辑框 var editBox = document.querySelector(".edit-box"); + editBox.mid = 0; //储存怪物id + editBox.awokenCount = 0; //储存怪物潜觉数量 editBox.latent = []; //储存潜在觉醒 editBox.assist = false; //储存是否为辅助宠物 editBox.monsterBox = null; @@ -158,35 +160,44 @@ function initialize() var settingBox = editBox.querySelector(".setting-box") //id搜索 - var monstersSearch = editBox.querySelector(".edit-box .m-id"); - monstersSearch.onchange = function(){ + var monstersID = editBox.querySelector(".edit-box .m-id"); + monstersID.onchange = function(){ if (/^\d+$/.test(this.value)) { - editBoxChangeMonId(parseInt(this.value)); + editBox.mid = parseInt(this.value); + editBoxChangeMonId(editBox.mid); } } - monstersSearch.oninput = monstersSearch.onchange; + monstersID.oninput = monstersID.onchange; //觉醒 var monEditAwokens = Array.prototype.slice.call(settingBox.querySelectorAll(".row-mon-awoken .awoken-ul .awoken-icon")); monEditAwokens.forEach(function(akDom,idx,domArr){ akDom.onclick = function(){ - if (idx>0 && idx>=domArr.filter(function(d){return !d.classList.contains("display-none")}).length-1) - domArr[0].innerHTML = "★"; + editBox.awokenCount = idx; + editBox.reCalculateAbility(); + editBox.refreshAwokens(); + }; + }); + //刷新觉醒 + editBox.refreshAwokens = function(){ + monEditAwokens[0].innerHTML = editBox.awokenCount; + if (editBox.awokenCount>0 && editBox.awokenCount==(ms[editBox.mid].awoken.length)) + monEditAwokens[0].classList.add("full-awoken"); + else + monEditAwokens[0].classList.remove("full-awoken"); + for(var ai=1;ai= md.maxLv && md.maxLv <=99)) - { + if (mon.level == md.maxLv) + { //如果等级刚好等于最大等级,则修改为“最大”的字 levelDom.classList.add("max"); }else { levelDom.classList.remove("max"); } - if (md.maxLv>99 && mon.level>=99) + if (md.a110 && mon.level >= md.maxLv) + { //如果支持超觉,并且等级超过99,就添加支持超觉的蓝色 levelDom.classList.add("_110"); - else + }else + { levelDom.classList.remove("_110"); + } } if (mon.awoken>-1) //如果提供了觉醒 { @@ -531,9 +603,9 @@ function editMon(AorB,isAssist,tempIdx) editBox.latentBox = latentBox; } - var monstersSearch = editBox.querySelector(".search-box .m-id"); - monstersSearch.value = mD.id>0?mD.id:0; - monstersSearch.onchange(); + var monstersID = editBox.querySelector(".search-box .m-id"); + monstersID.value = mD.id>0?mD.id:0; + monstersID.onchange(); var settingBox = editBox.querySelector(".setting-box"); //觉醒 var monEditAwokens = settingBox.querySelectorAll(".row-mon-awoken .awoken-ul .awoken-icon"); @@ -568,6 +640,7 @@ function editMon(AorB,isAssist,tempIdx) settingBox.querySelector(".row-mon-super-awoken").classList.add("display-none"); editBox.querySelector(".edit-box-title").classList.add("edit-box-title-assist"); } + editBox.reCalculateAbility(); } //编辑窗,修改怪物ID function editBoxChangeMonId(id) @@ -602,7 +675,8 @@ function editBoxChangeMonId(id) var settingBox = editBox.querySelector(".setting-box"); var mAwoken = settingBox.querySelectorAll(".row-mon-awoken .awoken-ul li"); - mAwoken[0].innerHTML = md.awoken.length?"★":"0"; + editBox.awokenCount = md.awoken.length; + mAwoken[0].innerHTML = editBox.awokenCount?"★":"0"; for (var ai=1;ai99?99:md.maxLv; + monEditLv.value = md.maxLv; //默认等级为最大等级而不是110 var rowPlus = settingBox.querySelector(".row-mon-plus"); var rowLatent = settingBox.querySelector(".row-mon-latent"); @@ -682,6 +756,7 @@ function editBoxChangeMonId(id) } editBox.latent.length = 0; editBox.refreshLatent(editBox.latent); + editBox.reCalculateAbility(); } //刷新整个队伍 function refreshAll(fmt){ diff --git a/solo.html b/solo.html index 04824aa7..f781ded9 100644 --- a/solo.html +++ b/solo.html @@ -382,9 +382,9 @@ var formation = {
    -
  • -
  • -
  • +
  • +
  • +
diff --git a/style.css b/style.css index 8ea2cfb6..fdd0bb3d 100644 --- a/style.css +++ b/style.css @@ -458,7 +458,9 @@ ul{ .awoken-ul .awoken-icon.unselected-awoken{ opacity: 0.3; } -.row-mon-awoken .awoken-icon.awoken-count{ +.row-mon-awoken .awoken-icon.awoken-count, +.row-mon-awoken .awoken-icon.awoken-count.full-awoken::before +{ color: yellow; font-size: 22px; line-height: 28px; @@ -466,6 +468,12 @@ ul{ text-shadow: black 0 0 4px; text-align: center; } +.row-mon-awoken .awoken-icon.awoken-count.full-awoken{ + font-size: 0; +} +.row-mon-awoken .awoken-icon.awoken-count.full-awoken::before{ + content: "★"; +} .row-mon-awoken .m-super-awoken-ul{ margin-top: 5px; } @@ -476,27 +484,32 @@ ul{ /*content: "▼怪物加值";*/ display: block; } +.row-mon-plus .ability-value::before{content: "(";} +.row-mon-plus .ability-value::after{content: ")";} .setting-box .m-plus-hp,.setting-box .m-plus-atk,.setting-box .m-plus-rcv{ font-size: 25px; height: 40px; - width: calc(100% - 198px); + width: calc(100% - 288px); box-sizing: border-box; } -.m-plus-hp-li::before,.m-plus-atk-li::before,.m-plus-rcv-li::before{ +.m-plus-hp-li::before,.m-plus-atk-li::before,.m-plus-rcv-li::before,.row-mon-plus .ability-value{ font-size: 25px; width: 55px; display: inline-block; } +.row-mon-plus .ability-value{ + width: 90px; +} /*.m-plus-hp-li::before{content: "HP";} .m-plus-atk-li::before{content: "攻击";} .m-plus-rcv-li::before{content: "回复";}*/ -.m-plus-hp-btn-99,.m-plus-atk-btn-99,.m-plus-rcv-btn-99{ +.m-plus-btn{ height: 40px; width: 55px; box-sizing: border-box; font-size: 25px; } -/*.m-plus-hp-btn-99::before,.m-plus-atk-btn-99::before,.m-plus-rcv-btn-99::before,.m-plus-btn-297::before{ +/*.m-plus-btn::before,.m-plus-btn-297::before{ content: "+"; }*/ .m-plus-btn-297{ diff --git a/universal_function.js b/universal_function.js index 8d388e04..77534e28 100644 --- a/universal_function.js +++ b/universal_function.js @@ -128,4 +128,38 @@ function returnMonsterNameArr(m,lsList) if (monNameArr.length < 1) monNameArr.push("????"); //如果还没有,默认名是问号 } return monNameArr; +} + +//计算怪物的能力 +function calculateAbility(monid,level,awoken,plus,latent) +{ + var m = ms[monid]; //怪物固定数据 + var plusAdd = [10,5,3]; //加值的增加值 + var awokenAdd = [ //对应加三维觉醒的序号与增加值 + {index:1,value:500}, + {index:2,value:100}, + {index:3,value:200} + ]; + var latentAdd = [ //对应加三维潜在觉醒的序号与增加比例 + [{index:1,scale:0.015},{index:12,scale:0.03},{index:25,scale:0.045}], + [{index:2,scale:0.01},{index:12,scale:0.02},{index:26,scale:0.03}], + [{index:3,scale:0.1},{index:12,scale:0.2},{index:27,scale:0.3}] + ]; + var abilitys = m.ability.map(function(ab,idx){ + var n_base = Math.round((ab[1]-ab[0])*(level>99?99:level)/99+ab[0]); //99级以内的增加 + if (level>99) //110级的增加 + { //100到110级有11级,将m.a110的成长比率平均分配到这11级内 + n_base = Math.round(ab[1] + ab[1]*(m.a110/100)*(level-99)/11); + } + var n_plus = plus[idx]*plusAdd[idx]; //加值增加量 + var awokenCount = m.awoken.slice(0,awoken).filter(function(a){return a==awokenAdd[idx].index;}).length; //含有增加三维觉醒的数量 + var n_awoken = Math.round(awokenCount*awokenAdd[idx].value); + var n_latent = Math.round(latentAdd[idx].reduce(function(previous,la){ + var latentCount = latent.filter(function(l){return l==la.index;}).length; //每个潜觉的数量 + return previous + n_base * la.scale * latentCount; //无加值与觉醒的基础值,乘以那么多个潜觉的增加倍数 + },0)); + //console.log("基础值:%d,加蛋值:%d,觉醒x%d增加:%d,潜觉增加:%d",n_base,n_plus,awokenCount,n_awoken,n_latent); + return n_base + n_plus + n_awoken + n_latent; + }) + return abilitys; } \ No newline at end of file