Merge branch 'master' into skillParser
|
@ -8,3 +8,4 @@
|
|||
/monsters-info/official-API/*-shop_item.json
|
||||
/sound/voice/variables.txt
|
||||
/fonts/.font-spider
|
||||
/images/*.fw.png
|
||||
|
|
Before Width: | Height: | Size: 432 KiB After Width: | Height: | Size: 445 KiB |
Before Width: | Height: | Size: 789 KiB After Width: | Height: | Size: 814 KiB |
Before Width: | Height: | Size: 430 KiB After Width: | Height: | Size: 429 KiB |
Before Width: | Height: | Size: 223 KiB After Width: | Height: | Size: 353 KiB |
After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 829 KiB After Width: | Height: | Size: 860 KiB |
Before Width: | Height: | Size: 715 KiB After Width: | Height: | Size: 909 KiB |
Before Width: | Height: | Size: 940 KiB After Width: | Height: | Size: 952 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 878 KiB |
After Width: | Height: | Size: 296 KiB |
Before Width: | Height: | Size: 460 KiB After Width: | Height: | Size: 883 KiB |
Before Width: | Height: | Size: 789 KiB After Width: | Height: | Size: 835 KiB |
Before Width: | Height: | Size: 430 KiB After Width: | Height: | Size: 429 KiB |
Before Width: | Height: | Size: 223 KiB After Width: | Height: | Size: 353 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 326 KiB After Width: | Height: | Size: 372 KiB |
|
@ -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:";
|
||||
}
|
||||
|
|
|
@ -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: "コスト:";
|
||||
}
|
||||
|
|
|
@ -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: "코스트:";
|
||||
}
|
||||
|
|
|
@ -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: "消耗:";
|
||||
}
|
||||
|
|
|
@ -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: "消耗:";
|
||||
}
|
||||
|
|
|
@ -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}]
|
|
@ -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">
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
46
script.js
|
@ -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();
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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{
|
||||
|
|
56
style.css
|
@ -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: "需要经验:";
|
||||
|
|
|
@ -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">
|
||||
|
|