v19.0更新内容初步加入

This commit is contained in:
枫谷剑仙 2021-02-22 00:24:51 +08:00
parent bcb2807eb8
commit 8eb197a1c0
15 changed files with 130 additions and 77 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 KiB

After

Width:  |  Height:  |  Size: 374 KiB

View File

@ -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:";
}

View File

@ -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: "コスト:";
}

View File

@ -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: "코스트:";
}

View File

@ -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: "消耗:";
}

View File

@ -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: "消耗:";
}

View File

@ -845,6 +845,7 @@ var formation = new Formation(teamsCount,5);
<div class="subrow">
<button class="m-level-btn-min" value="1"></button>~<button class="m-level-btn-max" value="99"></button>
<button class="m-level-btn-110 display-none" value="110"></button>
<button class="m-level-btn-120 display-none" value="120"></button>
</div>
<div class="m-level-exp"></div>
</div>
@ -898,6 +899,9 @@ var formation = new Formation(teamsCount,5);
<li class="latent-icon" data-latent-icon="34"></li><!--大木盾-->
<li class="latent-icon" data-latent-icon="35"></li><!--大光盾-->
<li class="latent-icon" data-latent-icon="36"></li><!--大暗盾-->
<li class="latent-icon" data-latent-icon="43"></li><!--HP++-->
<li class="latent-icon" data-latent-icon="44"></li><!--攻击++-->
<li class="latent-icon" data-latent-icon="45"></li><!--回复++-->
<li class="latent-icon" data-latent-icon="13"></li><!--不被换队长-->
<li class="latent-icon" data-latent-icon="14"></li><!--不掉废-->
<li class="latent-icon" data-latent-icon="15"></li><!--不掉毒-->
@ -906,6 +910,7 @@ var formation = new Formation(teamsCount,5);
<li class="latent-icon" data-latent-icon="39"></li><!--C珠破吸-->
<li class="latent-icon" data-latent-icon="40"></li><!--心横解转转-->
<li class="latent-icon" data-latent-icon="41"></li><!--U解禁消-->
<li class="latent-icon" data-latent-icon="42"></li><!--伤害上限解除-->
</ul>
</div>
<div class="setting-row row-mon-skill">

View File

@ -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}, //防封

View File

@ -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)
{

View File

@ -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();

View File

@ -768,6 +768,7 @@ var formation = new Formation(teamsCount,6);
<div class="subrow">
<button class="m-level-btn-min" value="1"></button>~<button class="m-level-btn-max" value="99"></button>
<button class="m-level-btn-110 display-none" value="110"></button>
<button class="m-level-btn-120 display-none" value="120"></button>
</div>
<div class="m-level-exp"></div>
</div>
@ -821,6 +822,9 @@ var formation = new Formation(teamsCount,6);
<li class="latent-icon" data-latent-icon="34"></li><!--大木盾-->
<li class="latent-icon" data-latent-icon="35"></li><!--大光盾-->
<li class="latent-icon" data-latent-icon="36"></li><!--大暗盾-->
<li class="latent-icon" data-latent-icon="43"></li><!--HP++-->
<li class="latent-icon" data-latent-icon="44"></li><!--攻击++-->
<li class="latent-icon" data-latent-icon="45"></li><!--回复++-->
<li class="latent-icon" data-latent-icon="13"></li><!--不被换队长-->
<li class="latent-icon" data-latent-icon="14"></li><!--不掉废-->
<li class="latent-icon" data-latent-icon="15"></li><!--不掉毒-->
@ -829,6 +833,7 @@ var formation = new Formation(teamsCount,6);
<li class="latent-icon" data-latent-icon="39"></li><!--C珠破吸-->
<li class="latent-icon" data-latent-icon="40"></li><!--心横解转转-->
<li class="latent-icon" data-latent-icon="41"></li><!--U解禁消-->
<li class="latent-icon" data-latent-icon="42"></li><!--伤害上限解除-->
</ul>
</div>
<div class="setting-row row-mon-skill">

View File

@ -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{

View File

@ -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: "需要经验:";

View File

@ -1497,6 +1497,7 @@ var formation = new Formation(teamsCount,6);
<div class="subrow">
<button class="m-level-btn-min" value="1"></button>~<button class="m-level-btn-max" value="99"></button>
<button class="m-level-btn-110 display-none" value="110"></button>
<button class="m-level-btn-120 display-none" value="120"></button>
</div>
<div class="m-level-exp"></div>
</div>
@ -1550,6 +1551,9 @@ var formation = new Formation(teamsCount,6);
<li class="latent-icon" data-latent-icon="34"></li><!--大木盾-->
<li class="latent-icon" data-latent-icon="35"></li><!--大光盾-->
<li class="latent-icon" data-latent-icon="36"></li><!--大暗盾-->
<li class="latent-icon" data-latent-icon="43"></li><!--HP++-->
<li class="latent-icon" data-latent-icon="44"></li><!--攻击++-->
<li class="latent-icon" data-latent-icon="45"></li><!--回复++-->
<li class="latent-icon" data-latent-icon="13"></li><!--不被换队长-->
<li class="latent-icon" data-latent-icon="14"></li><!--不掉废-->
<li class="latent-icon" data-latent-icon="15"></li><!--不掉毒-->
@ -1558,6 +1562,7 @@ var formation = new Formation(teamsCount,6);
<li class="latent-icon" data-latent-icon="39"></li><!--C珠破吸-->
<li class="latent-icon" data-latent-icon="40"></li><!--心横解转转-->
<li class="latent-icon" data-latent-icon="41"></li><!--U解禁消-->
<li class="latent-icon" data-latent-icon="42"></li><!--伤害上限解除-->
</ul>
</div>
<div class="setting-row row-mon-skill">