diff --git a/images/latent.png b/images/latent.png
index 80295187..db05a245 100644
Binary files a/images/latent.png and b/images/latent.png differ
diff --git a/images/project file/latent.fw.png b/images/project file/latent.fw.png
index 7abb169f..a730589e 100644
Binary files a/images/project file/latent.fw.png and b/images/project file/latent.fw.png differ
diff --git a/languages/en.css b/languages/en.css
index 83032cb1..13b8db14 100644
--- a/languages/en.css
+++ b/languages/en.css
@@ -117,13 +117,6 @@
.edit-box .setting-box .row-mon-level::before{
content: "▼Monster Level";
}
-.row-mon-level .level-value::before,
-.row-mon-level .m-level-btn-min::before,
-.row-mon-level .m-level-btn-max::before,
-.row-mon-level .m-level-btn-110::before
-{
- content: "Lv.";
-}
.edit-box .setting-box .monster-cost::before{
content: "COST:";
}
diff --git a/languages/ja.css b/languages/ja.css
index c7ccc700..b54733ff 100644
--- a/languages/ja.css
+++ b/languages/ja.css
@@ -115,13 +115,6 @@
.edit-box .setting-box .row-mon-level::before{
content: "▼モンスターレベル";
}
-.row-mon-level .level-value::before,
-.row-mon-level .m-level-btn-min::before,
-.row-mon-level .m-level-btn-max::before,
-.row-mon-level .m-level-btn-110::before
-{
- content: "Lv.";
-}
.edit-box .setting-box .monster-cost::before{
content: "コスト:";
}
diff --git a/languages/ko.css b/languages/ko.css
index 9bec5906..c95938ca 100644
--- a/languages/ko.css
+++ b/languages/ko.css
@@ -116,13 +116,6 @@
.edit-box .setting-box .row-mon-level::before{
content: "▼몬스터 레벨";
}
-.row-mon-level .level-value::before,
-.row-mon-level .m-level-btn-min::before,
-.row-mon-level .m-level-btn-max::before,
-.row-mon-level .m-level-btn-110::before
-{
- content: "Lv.";
-}
.edit-box .setting-box .monster-cost::before{
content: "코스트:";
}
diff --git a/languages/zh-TW.css b/languages/zh-TW.css
index 1ed2250d..660a50df 100644
--- a/languages/zh-TW.css
+++ b/languages/zh-TW.css
@@ -119,13 +119,6 @@
.edit-box .setting-box .row-mon-level::before{
content: "▼怪物等級";
}
-.row-mon-level .level-value::before,
-.row-mon-level .m-level-btn-min::before,
-.row-mon-level .m-level-btn-max::before,
-.row-mon-level .m-level-btn-110::before
-{
- content: "Lv.";
-}
.edit-box .setting-box .monster-cost::before{
content: "消耗:";
}
diff --git a/languages/zh.css b/languages/zh.css
index d66d09a3..e2d4e1fb 100644
--- a/languages/zh.css
+++ b/languages/zh.css
@@ -115,17 +115,9 @@
.row-mon-ability .m-rcv-li::before{
content: "回復:";
}
-
.edit-box .setting-box .row-mon-level::before{
content: "▼怪物等级";
}
-.row-mon-level .level-value::before,
-.row-mon-level .m-level-btn-min::before,
-.row-mon-level .m-level-btn-max::before,
-.row-mon-level .m-level-btn-110::before
-{
- content: "Lv.";
-}
.edit-box .setting-box .monster-cost::before{
content: "消耗:";
}
diff --git a/multi.html b/multi.html
index 74af1d3b..7d82ea89 100644
--- a/multi.html
+++ b/multi.html
@@ -845,6 +845,7 @@ var formation = new Formation(teamsCount,5);
~
+
@@ -898,6 +899,9 @@ var formation = new Formation(teamsCount,5);
+
+
+
@@ -906,6 +910,7 @@ var formation = new Formation(teamsCount,5);
+
diff --git a/script-json_data.js b/script-json_data.js
index 8a5e62a2..3f466627 100644
--- a/script-json_data.js
+++ b/script-json_data.js
@@ -39,6 +39,16 @@ typekiller_for_type.forEach(t=>
type_allowable_latent[t.type] = t.allowableLatent;
}
);
+//一般共同能打的潜觉
+const common_allowable_latent = [
+ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
+ 28,29,30,31,32,33,34,35,36,37,38,
+ 39,40,41, //需要拥有觉醒的才能打,但是有武器
+];
+//120级才能打的潜觉
+const v120_allowable_latent = [
+ 42,43,44,45
+];
//等效觉醒列表
const equivalent_awoken = [
{small:10,big:52,times:2}, //防封
diff --git a/script-universal_function.js b/script-universal_function.js
index eee9f87c..0713d08a 100644
--- a/script-universal_function.js
+++ b/script-universal_function.js
@@ -133,10 +133,10 @@ function latentUseHole(latentId)
switch (true)
{
case (latentId === 12):
- case (latentId >= 16 && latentId <= 36):
+ case (latentId >= 16 && latentId <= 36 || latentId >= 43):
return 2;
case (latentId >= 13 && latentId <= 15):
- case (latentId >= 37):
+ case (latentId >= 37 && latentId <= 42):
return 6;
case (latentId < 12):
default:
@@ -244,9 +244,14 @@ 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];
+ const expArray = [
+ Math.round(valueAt(member.level, 99, memberCard.exp)) //99级以内的经验
+ ];
+ if (member.level > 99)
+ expArray.push(Math.max(0, Math.min(member.level, 110) - 100) * 5000000);
+ if (member.level > 110)
+ expArray.push(Math.max(0, Math.min(member.level, 120) - 110) * 20000000);
+ return expArray;
}
//计算怪物的能力
function calculateAbility(member, assist = null, solo = true, teamsCount = 1)
@@ -283,9 +288,9 @@ function calculateAbility(member, assist = null, solo = true, teamsCount = 1)
});
}
const latentScale = [ //对应加三维潜在觉醒的序号与增加比例
- [{index:1,scale:0.015},{index:12,scale:0.03},{index:28,scale:0.045}], //HP
- [{index:2,scale:0.01},{index:12,scale:0.02},{index:29,scale:0.03}], //ATK
- [{index:3,scale:0.1},{index:12,scale:0.2},{index:30,scale:0.3}] //RCV
+ [{index:1,scale:0.015},{index:12,scale:0.03},{index:28,scale:0.045},{index:43,scale:0.09}], //HP
+ [{index:2,scale:0.01},{index:12,scale:0.02},{index:29,scale:0.03},{index:44,scale:0.06}], //ATK
+ [{index:3,scale:0.1},{index:12,scale:0.2},{index:30,scale:0.3},{index:45,scale:0.6}] //RCV
];
const memberCurves = [memberCard.hp, memberCard.atk, memberCard.rcv];
const assistCurves = assistCard ? [assistCard.hp, assistCard.atk, assistCard.rcv] : null;
@@ -548,22 +553,18 @@ function isReincarnated(card)
return card.is8Latent && !card.isUltEvo && (card.evoBaseId || card.evoRootId) != card.id && (card.awakenings.includes(49) ? isReincarnated(Cards[card.evoBaseId]) : true);
}
//获取类型允许的潜觉
-function getAllowLatent(types)
+function getAllowLatent(card)
{
- const latentSet = new Set();
- types.filter(i => i >= 0)
+ const latentSet = new Set(common_allowable_latent);
+ card.types.filter(i => i >= 0)
.map(type => type_allowable_latent[type])
.forEach(tA => tA.forEach(t => latentSet.add(t)));
+ if (card.limitBreakIncr)
+ {
+ v120_allowable_latent.forEach(t=>latentSet.add(t));
+ }
return Array.from(latentSet);
}
-//筛选出允许的潜觉
-function filterAllowLatent(latent, allowLatent)
-{
- const allKillerLatent = typekiller_for_type.map(type => type.latent);
- return latent.filter(lat =>
- !allKillerLatent.includes(lat) || //保留不属于杀的潜觉
- allKillerLatent.includes(lat) && allowLatent.includes(lat)); //属于杀的潜觉则只保留允许的
-}
//计算队伍中有多少血量
function countTeamHp(memberArr, leader1id, leader2id, solo, noAwoken=false)
{
diff --git a/script.js b/script.js
index 64c5b9a8..493754a6 100644
--- a/script.js
+++ b/script.js
@@ -1819,6 +1819,9 @@ function initialize() {
const monEditLv110 = settingBox.querySelector(".m-level-btn-110");
monEditLv110.ipt = monEditLv;
monEditLv110.onclick = setIptToMyValue;
+ const monEditLv120 = settingBox.querySelector(".m-level-btn-120");
+ monEditLv120.ipt = monEditLv;
+ monEditLv120.onclick = setIptToMyValue;
//编辑界面重新计算怪物的经验值
function reCalculateExp() {
const monid = editBox.mid;
@@ -1828,7 +1831,7 @@ function initialize() {
level: level
};
const needExp = calculateExp(tempMon);
- monLvExp.textContent = needExp ? needExp[0].bigNumberToString() + (level > 99 ? ` + ${needExp[1].bigNumberToString()}` : "") : "";
+ monLvExp.textContent = needExp ? needExp.map(exp=>exp.bigNumberToString()).join(" + ") : "";
}
editBox.reCalculateExp = reCalculateExp;
//三维
@@ -2323,9 +2326,10 @@ function changeid(mon, monDom, latentDom) {
levelDom.classList.remove("max");
}
if (card.limitBreakIncr && level >= card.maxLevel) { //如果支持超觉,并且等级超过99,就添加支持超觉的蓝色
- levelDom.classList.add("_110");
+ levelDom.classList.add(level > 110 ? "_120" : "_110");
} else {
levelDom.classList.remove("_110");
+ levelDom.classList.remove("_120");
}
}
const awokenIcon = monDom.querySelector(".awoken-count-num");
@@ -2671,14 +2675,19 @@ function editBoxChangeMonId(id) {
//monEditLvMax.textContent = monEditLvMax.value = card.maxLevel;
monEditLvMax.value = card.maxLevel;
const monEditLv = settingBox.querySelector(".m-level");
- monEditLv.max = monEditLv.value = card.maxLevel + (card.limitBreakIncr ? 11 : 0); //默认等级为110
+ monEditLv.max = card.limitBreakIncr ? 120 : card.maxLevel; //最大等级为120
+ monEditLv.value = card.limitBreakIncr ? 110 : card.maxLevel; //默认等级为110
const monEditLv110 = settingBox.querySelector(".m-level-btn-110");
+ const monEditLv120 = settingBox.querySelector(".m-level-btn-120");
monEditLv110.setAttribute("data-limit-break-incr",card.limitBreakIncr);
+ monEditLv120.setAttribute("data-limit-break-incr",card.limitBreakIncr);
if (card.limitBreakIncr) {
monEditLv110.classList.remove(className_displayNone);
+ monEditLv120.classList.remove(className_displayNone);
} else {
monEditLv110.classList.add(className_displayNone);
+ monEditLv120.classList.add(className_displayNone);
}
const mCost = settingBox.querySelector(".monster-cost");
@@ -2688,17 +2697,17 @@ function editBoxChangeMonId(id) {
const rowLatent = settingBox.querySelector(".row-mon-latent");
const monLatentAllowUl = rowLatent.querySelector(".m-latent-allowable-ul");
//该宠Type允许的杀,set不会出现重复的
- const allowLatent = getAllowLatent(card.types);
+ const allowLatent = getAllowLatent(card);
- typekiller_for_type.forEach(type => { //显示允许的杀,隐藏不允许的杀
- const latentDom = monLatentAllowUl.querySelector(`.latent-icon[data-latent-icon='${type.latent}']`);
- if (!latentDom) return;
- if (allowLatent.includes(type.latent)) {
- latentDom.classList.remove("unallowable-latent");
+ const latentIcons = Array.from(monLatentAllowUl.querySelectorAll(`.latent-icon[data-latent-icon]`));
+ latentIcons.forEach(icon => { //显示允许的潜觉,隐藏不允许的潜觉
+ const ltId = parseInt(icon.getAttribute("data-latent-icon"),10);
+ if (allowLatent.includes(ltId)) {
+ icon.classList.remove("unallowable-latent");
} else {
- latentDom.classList.add("unallowable-latent");
+ icon.classList.add("unallowable-latent");
}
- })
+ });
//怪物主动技能
const rowSkill = settingBox.querySelector(".row-mon-skill");
@@ -2768,7 +2777,7 @@ function editBoxChangeMonId(id) {
}
//去除所有不能再打的潜觉
- editBox.latent = filterAllowLatent(editBox.latent,allowLatent);
+ editBox.latent = editBox.latent.filter(lat => allowLatent.includes(lat));
editBox.refreshLatent(editBox.latent, id);
editBox.reCalculateExp();
editBox.reCalculateAbility();
diff --git a/solo.html b/solo.html
index 1d7e000b..80cd9d31 100644
--- a/solo.html
+++ b/solo.html
@@ -768,6 +768,7 @@ var formation = new Formation(teamsCount,6);
~
+
@@ -821,6 +822,9 @@ var formation = new Formation(teamsCount,6);
+
+
+
@@ -829,6 +833,7 @@ var formation = new Formation(teamsCount,6);
+
diff --git a/style-monsterimages.css b/style-monsterimages.css
index a00d4816..89cce6e9 100644
--- a/style-monsterimages.css
+++ b/style-monsterimages.css
@@ -709,7 +709,10 @@
.latent-icon[data-latent-icon='33']::before,
.latent-icon[data-latent-icon='34']::before,
.latent-icon[data-latent-icon='35']::before,
-.latent-icon[data-latent-icon='36']::before
+.latent-icon[data-latent-icon='36']::before,
+.latent-icon[data-latent-icon='43']::before,
+.latent-icon[data-latent-icon='44']::before,
+.latent-icon[data-latent-icon='45']::before
{
width: 76px;
}
@@ -720,7 +723,8 @@
.latent-icon[data-latent-icon='38']::before,
.latent-icon[data-latent-icon='39']::before,
.latent-icon[data-latent-icon='40']::before,
-.latent-icon[data-latent-icon='41']::before
+.latent-icon[data-latent-icon='41']::before,
+.latent-icon[data-latent-icon='42']::before
{
width: 252px;
}
@@ -847,6 +851,18 @@
.latent-icon[data-latent-icon='41']::before{ /*U解禁消*/
background-position-y: calc(-32px * 41);
}
+.latent-icon[data-latent-icon='42']::before{ /*伤害上限解除*/
+ background-position-y: calc(-32px * 42);
+}
+.latent-icon[data-latent-icon='43']::before{ /*HP++*/
+ background-position-y: calc(-32px * 43);
+}
+.latent-icon[data-latent-icon='44']::before{ /*攻击++*/
+ background-position-y: calc(-32px * 44);
+}
+.latent-icon[data-latent-icon='45']::before{ /*回复++*/
+ background-position-y: calc(-32px * 45);
+}
/* 徽章背景 */
.badge{
diff --git a/style.css b/style.css
index 8421d7b8..dc553d74 100644
--- a/style.css
+++ b/style.css
@@ -363,6 +363,9 @@ ul{
.monster .level._110{
color: lightskyblue;
}
+.monster .level._120{
+ color: lightgreen;
+}
/*.monster .level::before{
content: "Lv.";
}.monster .level.max::before{
@@ -700,7 +703,13 @@ body:not(.solo) .awoken-icon[data-awoken-icon="64"]::after
.team-latents .latent-icon[data-latent-icon='36'],
.team-latents .latent-icon[data-latent-icon='37'],
.team-latents .latent-icon[data-latent-icon='38'],
-.team-latents .latent-icon[data-latent-icon='39']
+.team-latents .latent-icon[data-latent-icon='39'],
+.team-latents .latent-icon[data-latent-icon='40'],
+.team-latents .latent-icon[data-latent-icon='41'],
+.team-latents .latent-icon[data-latent-icon='42'],
+.team-latents .latent-icon[data-latent-icon='43'],
+.team-latents .latent-icon[data-latent-icon='44'],
+.team-latents .latent-icon[data-latent-icon='45']
{
margin-left: 0;
margin-right: 0;
@@ -709,7 +718,11 @@ body:not(.solo) .awoken-icon[data-awoken-icon="64"]::after
.team-latents .latent-ul .latent-icon[data-latent-icon='14']::before,
.team-latents .latent-ul .latent-icon[data-latent-icon='15']::before,
.team-latents .latent-ul .latent-icon[data-latent-icon='37']::before,
-.team-latents .latent-ul .latent-icon[data-latent-icon='38']::before
+.team-latents .latent-ul .latent-icon[data-latent-icon='38']::before,
+.team-latents .latent-ul .latent-icon[data-latent-icon='39']::before,
+.team-latents .latent-ul .latent-icon[data-latent-icon='40']::before,
+.team-latents .latent-ul .latent-icon[data-latent-icon='41']::before,
+.team-latents .latent-ul .latent-icon[data-latent-icon='42']::before
{ /*6格的潜觉*/
width: 152px;
margin-left: -50px;
@@ -719,7 +732,11 @@ body:not(.solo) .awoken-icon[data-awoken-icon="64"]::after
.team-latents .latent-ul .latent-icon[data-latent-icon='14'],
.team-latents .latent-ul .latent-icon[data-latent-icon='15'],
.team-latents .latent-ul .latent-icon[data-latent-icon='37'],
-.team-latents .latent-ul .latent-icon[data-latent-icon='38']
+.team-latents .latent-ul .latent-icon[data-latent-icon='38'],
+.team-latents .latent-ul .latent-icon[data-latent-icon='39'],
+.team-latents .latent-ul .latent-icon[data-latent-icon='40'],
+.team-latents .latent-ul .latent-icon[data-latent-icon='41'],
+.team-latents .latent-ul .latent-icon[data-latent-icon='42']
{
border-radius: 5px 5px 5px 0;
box-shadow: black 1px 1px 1px;
@@ -728,7 +745,11 @@ body:not(.solo) .awoken-icon[data-awoken-icon="64"]::after
.team-latents .latent-icon[data-latent-icon='14']+.latent-icon,
.team-latents .latent-icon[data-latent-icon='15']+.latent-icon,
.team-latents .latent-icon[data-latent-icon='37']+.latent-icon,
-.team-latents .latent-icon[data-latent-icon='38']+.latent-icon
+.team-latents .latent-icon[data-latent-icon='38']+.latent-icon,
+.team-latents .latent-icon[data-latent-icon='39']+.latent-icon,
+.team-latents .latent-icon[data-latent-icon='40']+.latent-icon,
+.team-latents .latent-icon[data-latent-icon='41']+.latent-icon,
+.team-latents .latent-icon[data-latent-icon='42']+.latent-icon
{
width: 76px;
margin-left: 0;
@@ -746,7 +767,11 @@ body:not(.solo) .awoken-icon[data-awoken-icon="64"]::after
.team-latents .latent-icon[data-latent-icon='14']+.latent-icon::before,
.team-latents .latent-icon[data-latent-icon='15']+.latent-icon::before,
.team-latents .latent-icon[data-latent-icon='37']+.latent-icon::before,
-.team-latents .latent-icon[data-latent-icon='38']+.latent-icon::before
+.team-latents .latent-icon[data-latent-icon='38']+.latent-icon::before,
+.team-latents .latent-icon[data-latent-icon='39']+.latent-icon::before,
+.team-latents .latent-icon[data-latent-icon='40']+.latent-icon::before,
+.team-latents .latent-icon[data-latent-icon='41']+.latent-icon::before,
+.team-latents .latent-icon[data-latent-icon='42']+.latent-icon::before
{
background: none;
}
@@ -1772,7 +1797,14 @@ body:not(.solo) .awoken-icon[data-awoken-icon="64"]::after
{
margin-left: 10px;
}
-
+.row-mon-level .level-value::before,
+.row-mon-level .m-level-btn-min::before,
+.row-mon-level .m-level-btn-max::before,
+.row-mon-level .m-level-btn-110::before,
+.row-mon-level .m-level-btn-120::before
+{
+ content: "Lv.";
+}
.row-mon-level .subrow
{
font-family: var(--game-font-family );
@@ -1795,7 +1827,8 @@ body:not(.solo) .awoken-icon[data-awoken-icon="64"]::after
}
.m-level-btn-min,
.m-level-btn-max,
-.m-level-btn-110
+.m-level-btn-110,
+.m-level-btn-120
{
box-sizing: border-box;
font-size: 18px;
@@ -1806,7 +1839,8 @@ body:not(.solo) .awoken-icon[data-awoken-icon="64"]::after
{
content: attr(value);
}
-.row-mon-level .m-level-btn-110::after
+.row-mon-level .m-level-btn-110::after,
+.row-mon-level .m-level-btn-120::after
{
content: attr(value) " (+" attr(data-limit-break-incr) "%)";
}
@@ -1814,6 +1848,10 @@ body:not(.solo) .awoken-icon[data-awoken-icon="64"]::after
{
color: blue;
}
+.m-level-btn-120
+{
+ color: green;
+}
/*
.m-level-exp::before{
content: "需要经验:";
diff --git a/triple.html b/triple.html
index e70e1e02..2b3f28d5 100644
--- a/triple.html
+++ b/triple.html
@@ -1497,6 +1497,7 @@ var formation = new Formation(teamsCount,6);
~
+
@@ -1550,6 +1551,9 @@ var formation = new Formation(teamsCount,6);
+
+
+
@@ -1558,6 +1562,7 @@ var formation = new Formation(teamsCount,6);
+