Merge branch 'master' into skillParser

This commit is contained in:
枫谷剑仙 2021-02-25 17:40:35 +08:00
commit 98a98235a2
73 changed files with 185 additions and 108 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@
/monsters-info/official-API/*-shop_item.json
/sound/voice/variables.txt
/fonts/.font-spider
/images/*.fw.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 KiB

After

Width:  |  Height:  |  Size: 445 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 789 KiB

After

Width:  |  Height:  |  Size: 814 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 KiB

After

Width:  |  Height:  |  Size: 429 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 353 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 829 KiB

After

Width:  |  Height:  |  Size: 860 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 715 KiB

After

Width:  |  Height:  |  Size: 909 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 940 KiB

After

Width:  |  Height:  |  Size: 952 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 878 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 460 KiB

After

Width:  |  Height:  |  Size: 883 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 789 KiB

After

Width:  |  Height:  |  Size: 835 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 KiB

After

Width:  |  Height:  |  Size: 429 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 353 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 KiB

After

Width:  |  Height:  |  Size: 372 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

@ -1 +1 @@
[{"code":"ja","ckey":{"card":"3339acf8fb2591c551640850dc4bcb7b","skill":"c49fd4b9f4876aeef07d6742f663c30a"},"updateTime":1611417064917},{"code":"en","ckey":{"card":"ae4a2e963f2d62835616dbf7cbfa8444","skill":"9d01347d2bea0dab6a38f0e3e5efc6c9"},"updateTime":1611341699784},{"code":"ko","ckey":{"card":"f50a7a9f7c3b1a5a2c205b746b7f2862","skill":"68010643d35280452d379dce743bdcdc"},"updateTime":1611341699784}]
[{"code":"ja","ckey":{"card":"adbe0d1c8cf8ceb1ce966358b20c55af","skill":"d42cb821299794bea70cc2195a6d9792"},"updateTime":1613988778911},{"code":"en","ckey":{"card":"cbbdea856c2eaeab7ecc8c138f7ebd87","skill":"e0f402b783cc0dcfa0418a433e62e5d6"},"updateTime":1613747309574},{"code":"ko","ckey":{"card":"0e652eadf3ad66b50ccea7ef41295889","skill":"677f7f328907962d0fd2006f29605c72"},"updateTime":1613747309574}]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -61,7 +61,7 @@ var formation = new Formation(teamsCount,5);
</div>
<div>
<input type="checkbox" class="config-checkbox-ipt" name="show-mon-id" id="show-mon-id" onclick="toggleDomClassName(this,'not-show-mon-id',false);" checked><label class="config-checkbox-lbl show-mon-id-lbl" for="show-mon-id"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" class="config-checkbox-ipt" name="btn-show-mon-skill-cd" id="btn-show-mon-skill-cd" onclick="toggleDomClassName(this,'show-mon-skill-cd');"><label class="config-checkbox-lbl btn-show-mon-skill-cd-lbl" for="btn-show-mon-skill-cd"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" class="config-checkbox-ipt" name="btn-show-mon-skill-cd" id="btn-show-mon-skill-cd"><label class="config-checkbox-lbl btn-show-mon-skill-cd-lbl" for="btn-show-mon-skill-cd"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" class="config-checkbox-ipt" name="change-swap-to-copy" id="change-swap-to-copy"><label class="config-checkbox-lbl change-swap-to-copy-lbl" for="change-swap-to-copy"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
<div class="status"><span class="icon"></span><span class="text"></span></div>
@ -845,7 +845,9 @@ var formation = new Formation(teamsCount,5);
</div>
<div class="subrow">
<button class="m-level-btn-min" value="1"></button>~<button class="m-level-btn-max" value="99"></button>
<br>
<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>
@ -899,6 +901,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><!--不掉毒-->
@ -907,6 +912,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}, //防封
@ -73,11 +83,11 @@ const sort_function_list = [
const skill_a = Skills[a.activeSkillId],skill_b = Skills[b.activeSkillId];
return (skill_a.initialCooldown - skill_a.maxLevel) - (skill_b.initialCooldown - skill_b.maxLevel);
}},
{tag:"sort_hpMax110",name:"最大HP",function:(a,b)=>a.hp.max * (1 + a.limitBreakIncr/100) - b.hp.max * (1 + b.limitBreakIncr/100)},
{tag:"sort_atkMax110",name:"最大攻击",function:(a,b)=>a.atk.max * (1 + a.limitBreakIncr/100) - b.atk.max * (1 + b.limitBreakIncr/100)},
{tag:"sort_rcvMax110",name:"最大回复",function:(a,b)=>a.rcv.max * (1 + a.limitBreakIncr/100) - b.rcv.max * (1 + b.limitBreakIncr/100)},
{tag:"sort_hpMax110",name:"Lv110最大HP",function:(a,b)=>a.hp.max * (1 + a.limitBreakIncr/100) - b.hp.max * (1 + b.limitBreakIncr/100)},
{tag:"sort_atkMax110",name:"Lv110最大攻击",function:(a,b)=>a.atk.max * (1 + a.limitBreakIncr/100) - b.atk.max * (1 + b.limitBreakIncr/100)},
{tag:"sort_rcvMax110",name:"Lv110最大回复",function:(a,b)=>a.rcv.max * (1 + a.limitBreakIncr/100) - b.rcv.max * (1 + b.limitBreakIncr/100)},
{tag:"sort_hpMax110_awoken",name:"最大攻击(+觉醒)",function:(a,b)=>
{tag:"sort_hpMax110_awoken",name:"Lv110最大攻击(+觉醒)",function:(a,b)=>
{
const abilities_2statusA = calculateAbility_max(a.id, solo, teamsCount),
abilities_2statusB = calculateAbility_max(b.id, solo, teamsCount);
@ -86,7 +96,7 @@ const sort_function_list = [
return abA - abB;
}
},
{tag:"sort_hpMax110_awoken",name:"最大HP(+觉醒)",function:(a,b)=>
{tag:"sort_hpMax110_awoken",name:"Lv110最大HP(+觉醒)",function:(a,b)=>
{
const abilities_2statusA = calculateAbility_max(a.id, solo, teamsCount),
abilities_2statusB = calculateAbility_max(b.id, solo, teamsCount);
@ -95,7 +105,7 @@ const sort_function_list = [
return abA - abB;
}
},
{tag:"sort_hpMax110_awoken",name:"最大回复(+觉醒)",function:(a,b)=>
{tag:"sort_hpMax110_awoken",name:"Lv110最大回复(+觉醒)",function:(a,b)=>
{
const abilities_2statusA = calculateAbility_max(a.id, solo, teamsCount),
abilities_2statusB = calculateAbility_max(b.id, solo, teamsCount);
@ -104,7 +114,7 @@ const sort_function_list = [
return abA - abB;
}
},
{tag:"sort_abilityIndex_awoken",name:"最大加权能力指数(+觉醒)",function:(a,b)=>
{tag:"sort_abilityIndex_awoken",name:"Lv110最大加权能力指数(+觉醒)",function:(a,b)=>
{
const abilities_2statusA = calculateAbility_max(a.id, solo, teamsCount),
abilities_2statusB = calculateAbility_max(b.id, solo, teamsCount);

View File

@ -138,10 +138,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:
@ -230,7 +230,7 @@ function valueAt(level, maxLevel, curve) {
return curve.min + (curve.max - curve.min) * Math.pow(f, curve.scale);
}
//Code From pad-rikuu
function curve(c, level, maxLevel, limitBreakIncr) {
function curve(c, level, maxLevel, limitBreakIncr, limitBreakIncr120) {
let value = valueAt(level, maxLevel, {
min: c.min,
max: c.max!==undefined ? c.max : (c.min * maxLevel),
@ -238,8 +238,12 @@ function curve(c, level, maxLevel, limitBreakIncr) {
});
if (level > maxLevel) {
const exceed = level - maxLevel;
value += c.max!==undefined ? (c.max * (limitBreakIncr / 100) * (exceed / 11)) : c.min * exceed;
const exceed99 = Math.min(level - maxLevel, 11);
const exceed110 = Math.max(0, level - 110);
console.log(exceed99, level - 110)
value += c.max!==undefined ?
((c.max * (limitBreakIncr / 100) * (exceed99 / 11)) + (c.max * (limitBreakIncr120 / 100) * (exceed110 / 10))) :
(c.min * exceed99 + c.min * exceed110);
}
return value;
}
@ -249,9 +253,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)
@ -264,6 +273,7 @@ function calculateAbility(member, assist = null, solo = true, teamsCount = 1)
const bonusScale = [0.1,0.05,0.15]; //辅助宠物附加的属性倍率
const plusAdd = [10,5,3]; //加值的增加值
const limitBreakIncr120 = [10,5,5]; //120三维增加比例
const awokenAdd = [ //对应加三维觉醒的序号与增加值
[{index:1,value:500},{index:65,value:-2500}], //HP
@ -288,16 +298,16 @@ 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.10}], //HP
[{index:2,scale:0.01},{index:12,scale:0.02},{index:29,scale:0.03},{index:44,scale:0.05}], //ATK
[{index:3,scale:0.1},{index:12,scale:0.2},{index:30,scale:0.3},{index:45,scale:0.35}] //RCV
];
const memberCurves = [memberCard.hp, memberCard.atk, memberCard.rcv];
const assistCurves = assistCard ? [assistCard.hp, assistCard.atk, assistCard.rcv] : null;
const abilitys = memberCurves.map((ab, idx)=>{
const n_base = Math.round(curve(ab, member.level, memberCard.maxLevel, memberCard.limitBreakIncr)); //等级基础三维
const n_base = Math.round(curve(ab, member.level, memberCard.maxLevel, memberCard.limitBreakIncr, limitBreakIncr120[idx])); //等级基础三维
const n_plus = member.plus[idx] * plusAdd[idx]; //加值增加量
let n_assist_base = 0,n_assist_plus=0; //辅助的bonus
let awokenList = memberCard.awakenings.slice(0,member.awoken); //储存点亮的觉醒
@ -371,12 +381,12 @@ function calculateAbility(member, assist = null, solo = true, teamsCount = 1)
});
return abilitys;
}
function calculateAbility_max(id,solo, teamsCount)
function calculateAbility_max(id, solo, teamsCount)
{
const card = Cards[id];
const tempMon = {
id: id,
level: card.maxLevel + (card.limitBreakIncr ? 11 : 0),
level: card.limitBreakIncr ? 110 : card.maxLevel,
plus: (card.overlay || card.types[0] == 15 && card.types[1] == -1) ? [0,0,0] : [99,99,99], //当可以叠加时不能打297
awoken: card.awakenings.length,
};
@ -554,22 +564,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

@ -447,8 +447,10 @@ function toggleDomClassName(checkBox, className, checkedAdd = true, dom = docume
const checked = checkBox.checked;
if (checked && checkedAdd || !checked && !checkedAdd) {
dom.classList.add(className);
return true;
} else {
dom.classList.remove(className);
return false;
}
}
//清除数据
@ -595,7 +597,17 @@ window.onload = function(event) {
//设定初始的显示设置
toggleDomClassName(controlBox.querySelector("#show-mon-id"), 'not-show-mon-id', false);
toggleDomClassName(controlBox.querySelector("#btn-show-mon-skill-cd"), 'show-mon-skill-cd');
//记录显示CD开关的状态
const showMonSkillCd_id = "show-mon-skill-cd";
const btnShowMonSkillCd = controlBox.querySelector(`#btn-${showMonSkillCd_id}`);
btnShowMonSkillCd.checked = Boolean(parseInt(localStorage.getItem("PADDF-" + showMonSkillCd_id)));
btnShowMonSkillCd.onclick = function(){
toggleDomClassName(this, showMonSkillCd_id);
localStorage.setItem("PADDF-" + showMonSkillCd_id, this.checked ? 1 : 0);
};
btnShowMonSkillCd.onclick();
toggleDomClassName(controlBox.querySelector("#btn-show-awoken-count"), 'not-show-awoken-count', false);
initialize(); //界面初始化
@ -1819,6 +1831,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 +1843,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 +2338,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 +2687,18 @@ 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);
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 +2708,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");
@ -2777,7 +2797,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

@ -46,7 +46,7 @@ var formation = new Formation(teamsCount,6);
</div>
<div>
<input type="checkbox" class="config-checkbox-ipt" name="show-mon-id" id="show-mon-id" onclick="toggleDomClassName(this,'not-show-mon-id',false);" checked><label class="config-checkbox-lbl show-mon-id-lbl" for="show-mon-id"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" class="config-checkbox-ipt" name="btn-show-mon-skill-cd" id="btn-show-mon-skill-cd" onclick="toggleDomClassName(this,'show-mon-skill-cd');"><label class="config-checkbox-lbl btn-show-mon-skill-cd-lbl" for="btn-show-mon-skill-cd"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" class="config-checkbox-ipt" name="btn-show-mon-skill-cd" id="btn-show-mon-skill-cd"><label class="config-checkbox-lbl btn-show-mon-skill-cd-lbl" for="btn-show-mon-skill-cd"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" class="config-checkbox-ipt" name="change-swap-to-copy" id="change-swap-to-copy"><label class="config-checkbox-lbl change-swap-to-copy-lbl" for="change-swap-to-copy"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
<div class="status"><span class="icon"></span><span class="text"></span></div>
@ -768,7 +768,9 @@ var formation = new Formation(teamsCount,6);
</div>
<div class="subrow">
<button class="m-level-btn-min" value="1"></button>~<button class="m-level-btn-max" value="99"></button>
<br>
<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>
@ -822,6 +824,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><!--不掉毒-->
@ -830,6 +835,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">

BIN
sound/voice/ko/padv225.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv226.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv227.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv228.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv229.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv230.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv231.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv232.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv233.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv234.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv235.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv236.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv237.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv238.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv239.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv240.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv241.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv242.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv243.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv244.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv245.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv246.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv247.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv248.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv249.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv250.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv251.wav Normal file

Binary file not shown.

BIN
sound/voice/ko/padv252.wav Normal file

Binary file not shown.

View File

@ -708,7 +708,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;
}
@ -719,7 +722,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;
}
@ -846,6 +850,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

@ -359,6 +359,9 @@ ul{
.monster .level._110{
color: lightskyblue;
}
.monster .level._120{
color: lightgreen;
}
/*.monster .level::before{
content: "Lv.";
}.monster .level.max::before{
@ -420,6 +423,7 @@ ul{
{
position: absolute;
z-index: 10;
right: 0;
}
/*辅助和队伍的每一只框架*/
.member, .acquisitus-awoken-icon{
@ -696,7 +700,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;
@ -705,7 +715,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;
@ -715,7 +729,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;
@ -724,7 +742,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;
@ -742,7 +764,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;
}
@ -1768,7 +1794,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 );
@ -1791,7 +1824,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,10 +1840,18 @@ body:not(.solo) .awoken-icon[data-awoken-icon="64"]::after
{
content: attr(value) " (+" attr(data-limit-break-incr) "%)";
}
.row-mon-level .m-level-btn-120::after
{
content: attr(value);
}
.m-level-btn-110
{
color: blue;
}
.m-level-btn-120
{
color: green;
}
/*
.m-level-exp::before{
content: "需要经验:";

View File

@ -60,7 +60,7 @@ var formation = new Formation(teamsCount,6);
</div>
<div>
<input type="checkbox" class="config-checkbox-ipt" name="show-mon-id" id="show-mon-id" onclick="toggleDomClassName(this,'not-show-mon-id',false);" checked><label class="config-checkbox-lbl show-mon-id-lbl" for="show-mon-id"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" class="config-checkbox-ipt" name="btn-show-mon-skill-cd" id="btn-show-mon-skill-cd" onclick="toggleDomClassName(this,'show-mon-skill-cd');"><label class="config-checkbox-lbl btn-show-mon-skill-cd-lbl" for="btn-show-mon-skill-cd"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" class="config-checkbox-ipt" name="btn-show-mon-skill-cd" id="btn-show-mon-skill-cd"><label class="config-checkbox-lbl btn-show-mon-skill-cd-lbl" for="btn-show-mon-skill-cd"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" class="config-checkbox-ipt" name="btn-show-awoken-count" id="btn-show-awoken-count" onclick="toggleDomClassName(this,'not-show-awoken-count',false);" checked><label class="config-checkbox-lbl btn-show-awoken-count-lbl" for="btn-show-awoken-count"><div class="config-checkbox-lbl-cicle"></div></label>
<input type="checkbox" class="config-checkbox-ipt" name="change-swap-to-copy" id="change-swap-to-copy"><label class="config-checkbox-lbl change-swap-to-copy-lbl" for="change-swap-to-copy"><div class="config-checkbox-lbl-cicle"></div></label>
</div>
@ -1497,7 +1497,9 @@ var formation = new Formation(teamsCount,6);
</div>
<div class="subrow">
<button class="m-level-btn-min" value="1"></button>~<button class="m-level-btn-max" value="99"></button>
<br>
<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>
@ -1551,6 +1553,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><!--不掉毒-->
@ -1559,6 +1564,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">