diff --git a/languages/en.css b/languages/en.css
index 7fa140bb..d04dc838 100644
--- a/languages/en.css
+++ b/languages/en.css
@@ -83,6 +83,9 @@
.m-level-btn-max::before{
content: "Max Lv.";
}
+.m-level-exp::before{
+ content: "Need Exp:";
+}
.edit-box .setting-box .row-mon-awoken::before{
content: "▼Monster Awoken";
}
diff --git a/languages/ja.css b/languages/ja.css
index 77aa7285..d121e3a0 100644
--- a/languages/ja.css
+++ b/languages/ja.css
@@ -82,6 +82,9 @@
.m-level-btn-max::before{
content: "最大Lv.";
}
+.m-level-exp::before{
+ content: "必要な経験値:";
+}
.edit-box .setting-box .row-mon-awoken::before{
content: "▼モンスター覚醒";
}
diff --git a/languages/ko.css b/languages/ko.css
index e3f6bf1a..ff56eedc 100644
--- a/languages/ko.css
+++ b/languages/ko.css
@@ -82,6 +82,9 @@
.m-level-btn-max::before{
content: "최대Lv.";
}
+.m-level-exp::before{
+ content: "필요한 Exp:";
+}
.edit-box .setting-box .row-mon-awoken::before{
content: "▼몬스터 각성";
}
diff --git a/languages/zh-CN.js b/languages/zh-CN.js
index 64f784d0..d6b239a5 100644
--- a/languages/zh-CN.js
+++ b/languages/zh-CN.js
@@ -1171,4 +1171,22 @@ function parseSkillDescription(skill)
}
//(skill.description.length?(descriptionToHTML(skill.description) + "
"):"") + str
return str;
+}
+//大数字缩短长度
+function parseBigNumber(number)
+{
+ if (number === 0)
+ {
+ return number;
+ }else if (number % 1e8 === 0)
+ {
+ return number / 1e8 + "亿";
+ }else if (number % 1e4 === 0)
+ {
+ return number / 1e4 + "万";
+ }else
+ {
+ return number;
+ }
+
}
\ No newline at end of file
diff --git a/languages/zh-TW.css b/languages/zh-TW.css
index 85178f3e..6b35df33 100644
--- a/languages/zh-TW.css
+++ b/languages/zh-TW.css
@@ -85,6 +85,9 @@
.m-level-btn-max::before{
content: "最高Lv.";
}
+.m-level-exp::before{
+ content: "需要經驗值:";
+}
.edit-box .setting-box .row-mon-awoken::before{
content: "▼怪物覺醒";
}
diff --git a/languages/zh.css b/languages/zh.css
index 68800cee..fb96310d 100644
--- a/languages/zh.css
+++ b/languages/zh.css
@@ -85,6 +85,9 @@
.m-level-btn-max::before{
content: "最高Lv.";
}
+.m-level-exp::before{
+ content: "需要经验值:";
+}
.edit-box .setting-box .row-mon-awoken::before{
content: "▼怪物觉醒";
}
diff --git a/multi.html b/multi.html
index 9eb38354..f462aed7 100644
--- a/multi.html
+++ b/multi.html
@@ -696,9 +696,12 @@ var formation = new Formation(teamsCount,5);
-
-
-
+
+
+
+
+
+
diff --git a/script.js b/script.js
index b84cd73d..4e903686 100644
--- a/script.js
+++ b/script.js
@@ -203,7 +203,7 @@ function toggleShowMonSkillCd()
//清除数据
function clearData()
{
- location.href=location.href.replace(location.search,'');
+ location.search = "";
}
//轮换ABC队伍
function swapABCteam()
@@ -877,13 +877,29 @@ function initialize()
}
//等级
const monEditLv = settingBox.querySelector(".m-level");
- monEditLv.onchange = reCalculateAbility;
+ monEditLv.onchange = function(){
+ reCalculateExp();
+ reCalculateAbility();
+ };
const monEditLvMin = settingBox.querySelector(".m-level-btn-min");
+ const monLvExp = settingBox.querySelector(".m-level-exp");
monEditLvMin.ipt = monEditLv;
monEditLvMin.onclick = setIptToMyValue;
const monEditLvMax = settingBox.querySelector(".m-level-btn-max");
monEditLvMax.ipt = monEditLv;
monEditLvMax.onclick = setIptToMyValue;
+ //编辑界面重新计算怪物的经验值
+ function reCalculateExp(){
+ const monid = parseInt(monstersID.value || 0, 10);
+ const level = parseInt(monEditLv.value || 0, 10);
+ const tempMon = {
+ id:monid,
+ level:level
+ }
+ const needExp = calculateExp(tempMon);
+ monLvExp.innerHTML = needExp ? parseBigNumber(needExp[0]) + (level>99?` + ${parseBigNumber(needExp[1])}` : "") : "";
+ };
+ editBox.reCalculateExp = reCalculateExp;
//加蛋
const monEditAddHpLi = settingBox.querySelector(".row-mon-plus .m-plus-hp-li");
const monEditAddAtkLi = settingBox.querySelector(".row-mon-plus .m-plus-atk-li");
@@ -910,7 +926,7 @@ function initialize()
monEditAddHp.value = 99;
monEditAddAtk.value = 99;
monEditAddRcv.value = 99;
- editBox.reCalculateAbility();
+ reCalculateAbility();
};
//三维的计算值
const monEditHpValue = monEditAddHpLi.querySelector(".ability-value");
@@ -1569,6 +1585,7 @@ function editMon(teamNum,isAssist,indexInTeam)
rowMonLatent.classList.add("display-none");
editBoxTitle.classList.add("edit-box-title-assist");
}
+ editBox.reCalculateExp();
editBox.reCalculateAbility();
}
//编辑窗,修改怪物ID
@@ -1595,6 +1612,8 @@ function editBoxChangeMonId(id)
mRare.className = "monster-rare rare-" + card.rarity;
const mCost = monInfoBox.querySelector(".monster-cost");
mCost.innerHTML = card.cost;
+ /*const mExp = monInfoBox.querySelector(".monster-exp");
+ mExp.innerHTML = card.exp.max;*/
const mName = monInfoBox.querySelector(".monster-name");
mName.innerHTML = returnMonsterNameArr(card, currentLanguage.searchlist, currentDataSource.code)[0];
const mCollabId = monInfoBox.querySelector(".monster-collabId");
@@ -1785,6 +1804,7 @@ function editBoxChangeMonId(id)
}
editBox.latent.length = 0;
editBox.refreshLatent(editBox.latent,id);
+ editBox.reCalculateExp();
editBox.reCalculateAbility();
}
//搜索并显示合作
diff --git a/solo.html b/solo.html
index ed60b515..bc7c9e26 100644
--- a/solo.html
+++ b/solo.html
@@ -392,6 +392,7 @@ var formation = new Formation(teamsCount,6);
+
@@ -644,9 +645,12 @@ var formation = new Formation(teamsCount,6);
-
-
-
+
+
+
+
+
+
diff --git a/style.css b/style.css
index d52573af..77d775ca 100644
--- a/style.css
+++ b/style.css
@@ -910,7 +910,6 @@ ul{
.edit-box .setting-box .row-mon-level::before{
/*content: "▼怪物等级";*/
- display: block;
}
.edit-box .setting-box .m-level{
font-size: 25px;
@@ -918,7 +917,9 @@ ul{
width: calc(100% - 220px);
box-sizing: border-box;
}
-.m-level-btn-min,.m-level-btn-max{
+.m-level-btn-min,
+.m-level-btn-max
+{
height: 40px;
box-sizing: border-box;
font-size: 25px;
@@ -930,12 +931,21 @@ ul{
.m-level-btn-max{
width: 145px;
}
-/*.m-level-btn-max::before{
+.m-level-exp{
+ margin-left: 10px;
+ display: inline-block;
+}
+/*
+.m-level-exp::before{
+ content: "需要经验:";
+}
+.m-level-btn-max::before{
content: "最高Lv";
}
.edit-box .setting-box .row-mon-awoken::before{
content: "▼怪物觉醒";
-}*/
+}
+*/
.row-mon-awoken .awoken-ul, .row-mon-super-awoken .awoken-ul{
font-size: 0;
height: 32px;
diff --git a/triple.html b/triple.html
index 68bf51ff..9d0d4854 100644
--- a/triple.html
+++ b/triple.html
@@ -1281,9 +1281,12 @@ var formation = new Formation(teamsCount,6);
-
-
-
+
+
+
+
+
+
diff --git a/universal_function.js b/universal_function.js
index 8791d49f..14790782 100644
--- a/universal_function.js
+++ b/universal_function.js
@@ -147,6 +147,35 @@ function returnMonsterNameArr(card, lsList, defaultCode)
}
return monNameArr;
}
+//Code From pad-rikuu
+function valueAt(level, maxLevel, curve) {
+ const f = (maxLevel === 1 || level >= maxLevel) ? 1 : ((level - 1) / (maxLevel - 1));
+ return curve.min + (curve.max - curve.min) * Math.pow(f, curve.scale);
+}
+//Code From pad-rikuu
+function curve(c, level, maxLevel, limitBreakIncr) {
+ let value = valueAt(level, maxLevel, {
+ min: c.min,
+ max: c.max || (c.min * maxLevel),
+ scale: c.scale || 1
+ });
+
+ if (level > maxLevel) {
+ const exceed = level - maxLevel;
+ value += c.max ? (c.max * (limitBreakIncr / 100) * (exceed / 11)) : c.min * exceed;
+ }
+ return value;
+}
+//计算怪物的经验值
+function calculateExp(member)
+{
+ if (!member) return null;
+ const memberCard = Cards[member.id];
+ if (!memberCard || memberCard.id == 0 || !memberCard.enabled) return null;
+ const v99Exp = valueAt(member.level, 99, memberCard.exp);
+ const v110Exp = member.level > 99 ? Math.max(0, member.level - memberCard.maxLevel - 1) * 5000000 : 0;
+ return [Math.round(v99Exp),v110Exp];
+}
//计算怪物的能力
//function calculateAbility(monid = 0, level = 1, plus = [0,0,0], awoken = 0, latent = [], weaponId = null, weaponAwoken = null, solo = true)
function calculateAbility(member = null, assist = null, solo = true)
@@ -167,25 +196,6 @@ function calculateAbility(member = null, assist = null, solo = true)
const assistCard = assist ? Cards[assist.id] : null;
if (!memberCard || memberCard.id == 0 || !memberCard.enabled) return null;
- //Code From pad-rikuu
- function valueAt(level, maxLevel, curve) {
- const f = (maxLevel === 1 || level >= maxLevel) ? 1 : ((level - 1) / (maxLevel - 1));
- return curve.min + (curve.max - curve.min) * Math.pow(f, curve.scale);
- }
- //Code From pad-rikuu
- function curve(c, level, maxLevel, limitBreakIncr) {
- let value = valueAt(level, maxLevel, {
- min: c.min,
- max: c.max || (c.min * maxLevel),
- scale: c.scale || 1
- });
-
- if (level > maxLevel) {
- const exceed = level - maxLevel;
- value += c.max ? (c.max * (limitBreakIncr / 100) * (exceed / 11)) : c.min * exceed;
- }
- return value;
- }
const bonusScale = [0.1,0.05,0.15]; //辅助宠物附加的属性倍率
const plusAdd = [10,5,3]; //加值的增加值
const awokenAdd = [ //对应加三维觉醒的序号与增加值
@@ -335,15 +345,9 @@ function createCardA(id)
//将怪物的文字介绍解析为HTML
function descriptionToHTML(str)
{
- str = str.replace(/\n/igm,"
");
- str = str.replace(/\^([a-fA-F0-9]{6})\^([^\^]+)\^p/igm,'$2');
- let monReg = /\%\{m([0-9]{1,4})\}/igm;
- let monRegRes;
-
- while((monRegRes = monReg.exec(str))!=null) {
- str = str.replace(monRegRes[0],cardN(parseInt(monRegRes[1])));
- }
- //str = str.replace(/\%\{m([0-9]{1,4})\}/igm,cardN(`$1`));
+ str = str.replace(/\n/ig,"
"); //换行
+ str = str.replace(/\^([a-fA-F0-9]{6})\^([^\^]+)\^p/igm,'$2'); //文字颜色
+ str = str.replace(/\%\{m([0-9]{1,4})\}/g,function (str, p1, offset, s){return cardN(parseInt(p1,10));}); //怪物头像
return str;
}
//返回怪物名
@@ -366,4 +370,16 @@ function cardN(id){
function parseSkillDescription(skill)
{
return descriptionToHTML(skill.description);
+}
+//大数字缩短长度,默认返回本地定义字符串
+function parseBigNumber(number)
+{
+ /* //千位分隔符
+ const res=number.toString().replace(/\d+/, function(n){ // 先提取整数部分
+ return n.replace(/(\d)(?=(\d{3})+$)/g,function($1){
+ return $1+",";
+ });
+ })
+ */
+ return number.toLocaleString();
}
\ No newline at end of file