From 25ac68e1b538cf2691ee845fea48953232bf31b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=AB=E8=B0=B7=E5=89=91=E4=BB=99?= Date: Sun, 19 Jan 2020 19:08:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=88=E6=B7=BB=E5=8A=A0=E5=88=B0=E8=BF=99?= =?UTF-8?q?=E9=87=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- languages/zh-TW.css | 2 +- languages/zh-dev.css | 6 +- languages/zh-dev.js | 308 +++++++++++++++++++++++++------------------ languages/zh.css | 2 +- multi.html | 10 +- script.js | 35 +++-- solo.html | 10 +- style.css | 9 +- 8 files changed, 230 insertions(+), 152 deletions(-) diff --git a/languages/zh-TW.css b/languages/zh-TW.css index eac68060..82d3ac8b 100644 --- a/languages/zh-TW.css +++ b/languages/zh-TW.css @@ -82,7 +82,7 @@ } .skill-box .skill-cd::before{ - content: "冷卻回合:"; + content: "回合:"; } .skill-box .skill-level-label::before{ content: "Lv."; diff --git a/languages/zh-dev.css b/languages/zh-dev.css index 4ad2fb3f..4680ae12 100644 --- a/languages/zh-dev.css +++ b/languages/zh-dev.css @@ -82,7 +82,7 @@ } .skill-box .skill-cd::before{ - content: "冷却回合:"; + content: "回合:"; } .skill-box .skill-level-label::before{ content: "Lv."; @@ -233,7 +233,9 @@ .control-div .search-close::before{ content: "关闭搜索"; } -.edit-box .monsterinfo-box .monster-name{ +.edit-box .monsterinfo-box .monster-name, +.edit-box .skill-box .skill-datail +{ font-family: "Microsoft Yahei","Source Han Sans",Arial, Helvetica, sans-serif; font-weight: bold; } diff --git a/languages/zh-dev.js b/languages/zh-dev.js index 74dc6b1d..ecfd6580 100644 --- a/languages/zh-dev.js +++ b/languages/zh-dev.js @@ -1,5 +1,16 @@ document.title = solo?'智龙迷城单人队伍图制作工具':'智龙迷城协力队伍图制作工具'; +//查找原先完整技能 +function findFullSkill(subSkill){ + let search = Skills.filter(ss=>{return (ss.type == 116 || ss.type == 118 || ss.type == 138) && ss.params.indexOf(subSkill.id)>=0;}); + if(search.length) + {return [search[0],subSkill];} + else + {return subSkill;} +} +document.querySelector(".edit-box .row-mon-id .m-id").type = "number"; +//Skills.filter(s=>{const sk = s.params; return s.type == 156;}).map(findFullSkill) + //高级技能解释 function parseSkillDescription(skill) { @@ -7,9 +18,8 @@ function parseSkillDescription(skill) if (id == 0) return ""; const type = skill.type; const sk = skill.params; - let str = null; - //珠子名数组 + //珠子名和属性名数组 const attrsName = ["火","水","木","光","暗","回复","废","毒","剧毒","炸弹"]; //类型名数组 const typeName = ["进化","平衡","体力","回复","龙","神","攻击","恶魔","机械","特别保护","10","11","觉醒","13","强化","卖钱"]; @@ -18,11 +28,11 @@ function parseSkillDescription(skill) const ClumsN = ["左边第1竖列","左边第2竖列","左边第3竖列","右边第3竖列","右边第2竖列","右边第1竖列"]; const RowsN = ["最上1横行","上方第2横行","中间横行","下方第2横行","最下1横行"]; //返回属性名 - function attrN(i){return attrsName[i] || ("未知属性" + i);} + function attrN(i){return attrsName[i || 0] || ("未知属性" + i);} //返回类型名 - function typeN(i){return typeName[i] || ("未知类型" + i);} + function typeN(i){return typeName[i || 0] || ("未知类型" + i);} //返回觉醒名 - function awokenN(i){return awokenName[i-1] || ("未知觉醒" + i);} + function awokenN(i){return awokenName[(i || 0)-1] || ("未知觉醒" + i);} //从二进制的数字中获得布尔值数组 function getBooleanFromBinary(num,reverse=true) { /*num是输入的数字,2的N次方在2进制下表示1后面跟着N个0。 @@ -36,242 +46,283 @@ function parseSkillDescription(skill) { /*num是输入的数字,2的N次方在2进制下表示1后面跟着N个0。 如果num和2的N次方同时存在某位1,则返回这个数,逻辑上转换为true。 filter就可以返回所有有这个数的数据*/ + /*以珠子名称为例,num是输入的数字,比如10进制465转二进制=>111010001。 + 二进制数从低位到高位表示火水木光暗…… + 用逻辑运算AND序号来获得有没有这个值*/ var results = dataArr.filter(function(pn,pi){ return num & Math.pow(2,pi); //Math.pow(x,y)计算以x为底的y次方值 }); return results; } const nb = getNamesFromBinary; //化简名称 - //从二进制(10进制保存)的数字中获得有哪些珠子 - function binPns(b) - { /*b是输入的数字,比如10进制465转二进制=>111010001 - 然后从地位到高位表示火水木光暗…… - 用逻辑运算AND序号来获得有没有这个值*/ - return getNamesFromBinary(b,attrsName); - } - //从二进制的数字中获得有哪些列(colum) - function binClum(b) - { - return getNamesFromBinary(b,ClumsN); - } - //从二进制的数字中获得有哪些行(row) - function binRows(b) - { - return getNamesFromBinary(b,RowsN); - } + let str = null; let strArr = null; switch(type) { case 0: - str = "对敌方全体造成自身攻击力×" + sk[1]/100 + "倍的" + attrN(sk[0]) + "属性伤害"; + str = `对敌方全体造成自身攻击力×${sk[1]/100}倍的${attrN(sk[0])}属性伤害`; break; case 1: - str = "对敌方全体造成" + sk[1] + "的" + attrN(sk[0]) + "属性攻击"; + str = `对敌方全体造成${sk[1]}的${attrN(sk[0])}属性攻击`; break; case 2: - str = "对敌方1体造成自身攻击力×" + sk[0]/100 + "倍的伤害"; + str = `对敌方1体造成自身攻击力×${sk[0]/100}倍的伤害`; break; case 3: - str = sk[0] + "回合内受到的伤害减少" + sk[1] + "%"; + str = `${sk[0]}回合内受到的伤害减少${sk[1]}%`; break; case 4: - str = "使敌方全体中毒,每回合损失宠物自身攻击力×" + sk[0]/100 + "倍的HP"; + str = `使敌方全体中毒,每回合损失宠物自身攻击力×${sk[0]/100}倍的HP`; break; case 5: - str = sk[0] + "秒内时间停止,可以任意移动宝珠"; + str = `${sk[0]}秒内时间停止,可以任意移动宝珠`; break; case 6: - str = "敌人的HP减少" + sk[0] + "%"; + str = `敌人的HP减少${sk[0]}%`; break; case 8: - str = "回复" + sk[0] + "HP"; + str = `回复${sk[0]}HP`; break; case 9: - str = attrN(sk[0]) + "变为" + attrN(sk[1] || 0); + str = `${attrN(sk[0])}变为${attrN(sk[1])}`; break; case 10: - str = "全版刷新"; + str = `全版刷新`; break; case 11: - str = attrN(sk[0]) + "属性宠物的攻击力×" + sk[1]/100 + "倍"; + str = `${attrN(sk[0])}属性宠物的攻击力×${sk[1]/100}倍`; break; case 12: - str = "消除宝珠的回合,以自身攻击力×" + sk[0]/100 + "倍的伤害追打敌人"; + str = `消除宝珠的回合,以自身攻击力×${sk[0]/100}倍的伤害追打敌人`; break; case 13: - str = "消除宝珠的回合,回复自身回复力×" + sk[0]/100 + "倍的HP"; + str = `消除宝珠的回合,回复自身回复力×${sk[0]/100}倍的HP`; break; case 14: - str = "如当前HP在HP上限的"+sk[0]+"%~"+sk[1]+"%的话,受到单一次致命攻击时,将会以1点HP生还"; + str = `如当前HP在HP上限的${sk[0]}%~${sk[1]}%的话,受到单一次致命攻击时,将会以1点HP生还`; break; case 15: - str = "操作时间演延长" + sk[0]/100 + "秒"; + str = `操作时间演延长${sk[0]/100}秒`; break; case 16: - str = "受到的所有伤害减少" + sk[0] + "%"; + str = `受到的所有伤害减少${sk[0]}%`; break; case 17: - str = "受到的" +attrN(sk[0])+ "属性伤害减少" + sk[1] + "%"; + str = `受到的${attrN(sk[0])}属性伤害减少${sk[1]}%`; break; case 18: - str = "将敌人的攻击延迟" + sk[0] + "回合"; + str = `将敌人的攻击延迟${sk[0]}回合`; break; case 19: - str = sk[0] + "回合内敌方防御力减少" + sk[1] + "%"; + str = `${sk[0]}回合内敌方防御力减少${sk[1]}%`; break; case 20: //单色A转B,C转D strArr = []; - for (var ai=0;ai=3 && sk.length<=4 && sk[1] == (sk[3])) + { + str = `${attrN(sk[0])}、${attrN(sk[2])}宝珠变为${attrN(sk[1])}`; + }else { - strArr.push(attrN(sk[ai]) +"宝珠变为" + attrN(sk[ai+1])); + for (let ai=0;ai=0) - {strArr = sk.slice(6,sk.indexOf(1,-1));} + if (sk.indexOf(-1)>=0) + { + strArr = sk.slice(0,sk.indexOf(-1)); + } str = "全画面的宝珠变成" + strArr.map((o)=>{return attrN(o);}).join("、"); break; + case 76: + atrArr = []; + if (sk[0]) {strArr.push(nb(sk[0],attrsName).join("、") + "属性");} + if (sk[1]) {strArr.push(nb(sk[1],typeName).join("、") + "类型");} + if (strArr.length) str += strArr.join("和") + "宠物的"; + str += `全属性${sk[2]/100}倍`; + break; case 84: - str = "HP"+(sk[3]?("减少"+ sk[3] +"%"):"变为1")+",对敌方1体造成自身攻击力×" + (sk[1]!=sk[2]?(sk[1]/100+"~"+sk[2]/100):sk[1]/100) + "倍的" + attrN(sk[0]) + "属性伤害"; + str = `HP${(sk[3]?(`减少${sk[3]}%`):"变为1")},对敌方1体造成自身攻击力×${sk[1]/100}${sk[1]!=sk[2]?`~${+sk[2]/100}`:""}倍的${attrN(sk[0])}属性伤害`; break; case 85: - str = "HP减少"+ sk[3] +"%,对敌方全体造成自身攻击力×" + (sk[1]!=sk[2]?(sk[1]/100+"~"+sk[2]/100):sk[1]/100) + "倍的" + attrN(sk[0]) + "属性伤害"; + str = `HP减少${sk[3]}%,对敌方全体造成自身攻击力×${sk[1]/100}${sk[1]!=sk[2]?`~${+sk[2]/100}`:""}倍的${attrN(sk[0])}属性伤害`; break; case 87: - str = "HP变为1,,对敌方全体造成"+sk[1]+"点"+attrN(sk[0])+"属性伤害"; + str = `HP变为1,,对敌方全体造成${sk[1]}点${attrN(sk[0])}属性伤害`; break; case 88: - str = sk[0] + "回合内" + typeN(sk[1]) + "类型的攻击力×"+ sk[2]/100 + "倍"; + str = `${sk[0]}回合内${typeN(sk[1])}类型的攻击力×${sk[2]/100}倍`; break; case 90: strArr = sk.slice(1,sk.length-1); - str = sk[0] + "回合内" + strArr.map(attr => {return attrN(attr);}).join("、") + "属性的攻击力×"+ sk[sk.length-1]/100 + "倍"; + str = `${sk[0]}回合内${strArr.map(attrN).join("、")}属性的攻击力×${sk[sk.length-1]/100}倍`; break; case 92: strArr = sk.slice(1,sk.length-1); - str = sk[0] + "回合内" + strArr.map(type => {return typeN(type);}).join("、") + "类型的攻击力×"+ sk[sk.length-1]/100 + "倍"; + str = `${sk[0]}回合内${strArr.map(typeN).join("、")}类型的攻击力×${sk[sk.length-1]/100}倍`; + break; + case 93: + str = `将自己换成队长,再次使用此技能则换为原来的队长。${sk[0]?`未知 参数0 ${sk[0]}`:""}`; break; case 110: - str = "根据余下HP对敌方"+(sk[0]?"1":"全")+"体造成"+attrN(sk[1])+"属性伤害(100%HP时为自身攻击力的"+sk[2]/100+"倍,1HP时为自身攻击力的"+sk[3]/100+"倍)"; + str = `根据余下HP对敌方${sk[0]?"1":"全"}体造成${attrN(sk[1])}属性伤害(100%HP时为自身攻击力的${sk[2]/100}倍,1HP时为自身攻击力的${sk[3]/100}倍)`; break; case 115: str = `对敌方全体造成自身攻击力×${sk[1]/100}倍的${attrN(sk[0])}属性伤害,并回复伤害${sk[2]}%的HP`; break; - case 116: //多内容主动技能 - str = "按顺序组合发动如下主动技能:
    "; - str += sk.map(subSkill => {return "
  • " + parseSkillDescription(Skills[subSkill]) + "
  • ";}).join(""); - str += "
"; + case 116: //多内容主动技能,按顺序组合发动如下主动技能: + str = `
    `; + //处理多次单人固伤 + let repeatDamage = sk.filter(subSkill => {return Skills[subSkill].type == 188;}); + if (repeatDamage.length>1) + { + strArr = sk.filter(subSkill => {return Skills[subSkill].type != 188;}).map(subSkill => {return `
  • ${parseSkillDescription(Skills[subSkill])}
  • `;}); + strArr.splice(sk.indexOf(repeatDamage[0]),0,`
  • ${parseSkillDescription(Skills[repeatDamage[0]])}×${repeatDamage.length}次
  • `); + str += strArr.join(""); + }else + { + str += sk.map(subSkill => {return `
  • ${parseSkillDescription(Skills[subSkill])}
  • `;}).join(""); + } + str += `
`; break; case 118: //随机内容主动技能 - str = "随机发动如下主动技能:
    "; - str += sk.map(subSkill => {return "
  • " + parseSkillDescription(Skills[subSkill]) + "
  • ";}).join(""); - str += "
"; + str = `随机发动以下技能:
    `; + str += sk.map(subSkill => {return `
  • ${parseSkillDescription(Skills[subSkill])}
  • `;}).join(""); + str += `
`; break; case 117: strArr = []; if(sk[1]>0) strArr.push(`回复宠物自身回复力x${sk[1]/100}倍的HP`); if(sk[3]) strArr.push(`回复HP上限${sk[3]}%的HP`); if(sk[2]) strArr.push(`回复${sk[2]}HP`); - if(sk[0]>0) strArr.push("封锁状态减少" + sk[0] + "回合"); - if(sk[4]>0) strArr.push("觉醒无效状态减少" + sk[4] + "回合"); + if(sk[0]>0) strArr.push(`封锁状态减少${sk[0]}回合`); + if(sk[4]>0) strArr.push(`觉醒无效状态减少${sk[4]}回合`); str = strArr.join(","); break; case 126: - str = sk[7] +"回合内" + binPns(sk[6]).join("、") + "珠的掉落率提高"+ sk[9] + "%"; - if (sk[7] != sk[8]) str += "还有未知sk[8]"; + str = `${sk[1]}${sk[1] != sk[2]?`~${sk[2]}`:""}回合内${nb(sk[0], attrsName).join("、")}珠的掉落率提高${sk[3]}%`; break; case 127: //生成竖列 - var argArr = sk.slice(6); //获取6开始的参数 - var arrT = []; - for (var ai=0;ai {return "
  • " + parseSkillDescription(Skills[subSkill]) + "
  • ";}).join(""); - str += ""; + case 138: //多内容队长技能,按顺序组合发动如下队长技能: + str = `
      `; + str += sk.map(subSkill => {return `
    • ${parseSkillDescription(Skills[subSkill])}
    • `;}).join(""); + str += `
    `; break; case 140: - str = binPns(sk[6]).join("、") + "宝珠强化(每颗强化珠伤害/回复增加"+sk[7]+"%)"; + str = `${nb(sk[0],attrsName).join("、")}宝珠强化(每颗强化珠伤害/回复增加${sk[1]}%)`; break; case 141: - str = "随机生成" + binPns(sk[7]).join("、") + "珠各"+ sk[6] + "个"; - if (sk[7] != sk[8]) str += "还有未知sk[8]"; + let otherAttrs = sk[1] ^ sk[2]; //异或,sk[2]表示在什么珠以外生成,平时等于sk[1] + str = `${otherAttrs?`${nb(otherAttrs,attrsName).join("、")}以外`:""}随机生成${nb(sk[1],attrsName).join("、")}珠各${sk[0]}个`; + break; + case 142: + str = `${sk[0]}回合内自身的属性变为${attrN(sk[1])}`; break; case 144: - str = "对敌方全体造成"+binPns(sk[6]).join("、")+"属性总攻击力×" + sk[7]/100 + "倍的" + attrN(sk[9]||0) + "属性伤害"; - if (sk[8]>0) str += "还有未知sk[8]"; + str = `对敌方${sk[2]?sk[2]:"全"}体造成${nb(sk[0],attrsName).join("、")}属性总攻击力×${sk[1]/100}倍的${attrN(sk[3])}属性伤害`; break; case 146: - str = "自身以外的宠物技能CD减少"+ (sk[6]!=sk[7]?(sk[6]+"~"+sk[7]):sk[6])+"回合"; + str = `自身以外的宠物技能冷却减少${sk[0]}${sk[0]!=sk[1]?`~${sk[1]}`:""}回合`; break; case 152: - str = "将"+ binPns(sk[6]).join("、") + "宝珠锁定"; - if (sk[7]!=42) str += "还有未知sk[7]"; + str = `将`; + if (sk[0] & 1023 == 1023) //parseInt("1111111111",2) == 1023 + { + str += `全部`; + }else if (sk[0] & 31 == 31) //parseInt("11111",2) == 31 + { + str += `5色+${nb(sk[0] ^ 31,attrsName).join("、")}`; + }else + { + str += nb(sk[0],attrsName).join("、"); + } + str += `宝珠锁定`; + if (sk[1]!=42 && sk[1]!=99) str += `,还有未知 参数[1]:${sk[1]}`; break; case 153: - str = "敌人全体变为"+ attrN(sk[6]) + "属性。(" +(sk[7]?"不":"")+"受防护盾的影响)"; + str = `敌人全体变为${attrN(sk[0])}属性。(${sk[1]?"不":""}受防护盾的影响)`; break; case 154: - str = binPns(sk[6]).join("、") + "珠变为"+ binPns(sk[7]).join("、"); + str = `${nb(sk[0],attrsName).join("、")}珠变为${nb(sk[1],attrsName).join("、")}`; break; case 156: //宝石姬技能 - if (sk[10]==2) - str = sk[6] + "回合内,根据队伍内觉醒技能"+awokenN(sk[7])+"的数目提升所有属性的攻击力,每个觉醒可以提升"+(sk[11]-100)+"%"; - else if (sk[10]==3) - str = sk[6] + "回合内,根据队伍内觉醒技能"+awokenN(sk[7])+"的数目减少收到的伤害,每个觉醒可以减少"+sk[11]+"%"; + strArr = sk.slice(1,4); + str = `${sk[0]?`${sk[0]}回合内,`:""}根据队伍内觉醒技能${strArr.filter(s=>{return s>0;}).map(s=>{return awokenN(sk[1]);}).join("、")}的数目`; + if (sk[4]==1) + str += `回复HP,每个觉醒回复${sk[5]}点`; + else if (sk[4]==2) + str += `提升所有属性的攻击力,每个觉醒可以提升${sk[5]-100}%`; + else if (sk[4]==3) + str += `减少收到的伤害,每个觉醒可以减少${sk[5]}%`; else - str = "156宝石姬技能,未知buff类型sk[10]"; - if (sk[8]>0) str += "还有未知sk[8]"; - if (sk[9]>0) str += "还有未知sk[9]"; + str = `156宝石姬技能,未知buff类型 参数[4]:${sk[4]}`; break; case 160: - str = sk[0] + "回合内,结算时增加"+sk[1]+"COMBO"; + str = `${sk[0]}回合内,结算时增加${sk[1]}COMBO`; break; case 167: //"相連消除5個或以上的火寶珠或光寶珠時攻擊力和回復力4倍,每多1個+1倍,最大7個時6倍;" @@ -315,20 +366,20 @@ function parseSkillDescription(skill) } } break; + case 168: //宝石姬技能2 + strArr = sk.slice(1,7); //目前只有2个,而且2-6都是0,不知道是不是真的都是觉醒 + str = `${sk[0]?`${sk[0]}回合内,`:""}根据队伍内觉醒技能${strArr.filter(s=>{return s>0;}).map(s=>{return awokenN(sk[1]);}).join("、")}的数目`; + str += `提升所有属性的攻击力,每个觉醒可以提升${sk[7]}%`; + break; case 172: - str = "解锁所有宝珠"; + str = `解锁所有宝珠`; break; case 176: //●◉○◍◯ var table = [sk[0],sk[1],sk[2],sk[3],sk[4]]; - str = "以如下形状生成" + attrN(sk[5]||0) + "宝珠
    "; + str = `以如下形状生成${attrN(sk[5])}宝珠
    `; str += table.map(r=>{ - var rArr = []; - for(var c=0;c<=5;c++) - { - rArr.push(r & Math.pow(2,c)?"●":"○"); - } - return rArr.join(""); + return getBooleanFromBinary(r).map(b=>{return b?"●":"○";}).join(""); }).join("
    "); break; case 173: @@ -336,13 +387,13 @@ function parseSkillDescription(skill) if (sk[1]) strArr.push("属性吸收"); if (sk[2]) strArr.push("连击吸收?目前是猜测"); if (sk[3]) strArr.push("伤害吸收"); - str = sk[0] + "回合内敌人的" + strArr.join("、") + "无效化"; + str = `${sk[0]}回合内敌人的${strArr.join("、")}无效化`; break; case 184: - str = sk[0] + "回合内,天降的宝珠不会产生COMBO"; + str = `${sk[0]}回合内,天降的宝珠不会产生COMBO`; break; case 180: - str = sk[0] + "回合内," + sk[1] + "%概率掉落强化宝珠"; + str = `${sk[0]}回合内,${sk[1]}%概率掉落强化宝珠`; break; case 186: str = '版面变为【7×6】'; @@ -351,28 +402,29 @@ function parseSkillDescription(skill) if (sk[1]) {strArr.push(nb(sk[1],typeName).join("、") + "类型");} if (strArr.length) str += strArr.join("和") + "宠物的"; strArr =[]; - if (sk[2]) {strArr.push("HP " + sk[2]/100 + "倍");} - if (sk[3]) {strArr.push("攻击力 " + sk[3]/100 + "倍");} - if (sk[4]) {strArr.push("回复力 " + sk[4]/100 + "倍");} - str += strArr.join("、") + "。"; + if (sk[2]) {strArr.push(`HP ${sk[2]/100}倍`);} + if (sk[3]) {strArr.push(`攻击力 ${sk[3]/100}倍`);} + if (sk[4]) {strArr.push(`回复力 ${sk[4]/100}倍`);} + str += strArr.join("、"); break; case 188: - str = "对敌方1体造成" + sk[0] + "点无视防御的固定伤害(×多次)"; + str = `对敌方1体造成${sk[0]}点无视防御的固定伤害`; break; case 191: - str = sk[0] + "回合内可以贯穿伤害无效盾"; + str = `${sk[0]}回合内可以贯穿伤害无效盾`; break; case 195: - str = "HP减少"+ sk[0] + "%"; + str = `HP减少${sk[0]}%`; break; case 196: - str = "无法消除宝珠状态减少"+ sk[0] + "回合"; + str = `无法消除宝珠状态减少${sk[0]}回合`; break; default: - str = "未知的技能类型" + type + "(No." + id + ")"; + str = `未知的技能类型${type}(No.${id})`; + //开发部分 const copySkill = JSON.parse(JSON.stringify(skill)); copySkill.params = copySkill.params.map(p=>{return [p,getBooleanFromBinary(p).join("")];}); - console.log("未知的技能类型",copySkill); + console.log(`未知的技能类型${type}(No.${id})`,findFullSkill(skill),"转二进制",copySkill); break; } return str; diff --git a/languages/zh.css b/languages/zh.css index a1f6544f..65b5f52f 100644 --- a/languages/zh.css +++ b/languages/zh.css @@ -82,7 +82,7 @@ } .skill-box .skill-cd::before{ - content: "冷却回合:"; + content: "回合:"; } .skill-box .skill-level-label::before{ content: "Lv."; diff --git a/multi.html b/multi.html index 9022db17..5df79415 100644 --- a/multi.html +++ b/multi.html @@ -736,7 +736,15 @@ var formation = new Formation(2,5);
    -
    +
    + +
    + + + + +
    +
    diff --git a/script.js b/script.js index ef8e5911..aa66814c 100644 --- a/script.js +++ b/script.js @@ -694,8 +694,12 @@ function initialize() monstersID.onchange = function(){ if (/^\d+$/.test(this.value)) { - editBox.mid = parseInt(this.value, 10); - editBoxChangeMonId(editBox.mid); + const newId = parseInt(this.value, 10); + if (editBox.mid != newId) //避免多次运行oninput、onchange + { + editBox.mid = newId; + editBoxChangeMonId(editBox.mid); + } } }; monstersID.oninput = monstersID.onchange; @@ -1538,15 +1542,6 @@ function editBoxChangeMonId(id) const rowPlus = settingBox.querySelector(".row-mon-plus"); const rowLatent = settingBox.querySelector(".row-mon-latent"); - if (card.overlay) - { //当可以叠加时,不能打297和潜觉 - rowPlus.classList.add("disabled"); - rowLatent.classList.add("disabled"); - }else - { - rowPlus.classList.remove("disabled"); - rowLatent.classList.remove("disabled"); - } const monLatentAllowUl = rowLatent.querySelector(".m-latent-allowable-ul"); //该宠Type允许的杀 let allowLatent = uniq(card.types.reduce(function (previous, t, index, array) { @@ -1580,9 +1575,9 @@ function editBoxChangeMonId(id) skillTitle.innerHTML = descriptionToHTML(skill.name); skillDetail.innerHTML = parseSkillDescription(skill); - skillLevel.max = skill.maxLevel; - skillLevel.value = skill.maxLevel; - skillLevel_Max.value = skill.maxLevel; + skillLevel.max = card.overlay ? 1 : skill.maxLevel; + skillLevel.value = card.overlay ? 1 : skill.maxLevel; + skillLevel_Max.value = card.overlay ? 1 : skill.maxLevel; skillLevel_Max.innerHTML = skill.maxLevel; skillCD.innerHTML = skill.initialCooldown - skill.maxLevel + 1; @@ -1602,6 +1597,18 @@ function editBoxChangeMonId(id) rowLederSkill.appendChild(fragment); + if (card.overlay) + { //当可以叠加时,不能打297和潜觉 + rowPlus.classList.add("disabled"); + rowLatent.classList.add("disabled"); + skillLevel.setAttribute("readonly",true); + }else + { + rowPlus.classList.remove("disabled"); + rowLatent.classList.remove("disabled"); + skillLevel.removeAttribute("readonly"); + } + if (editBox.assist) { var btnDone = editBox.querySelector(".button-done"); diff --git a/solo.html b/solo.html index 2662f72b..7086d944 100644 --- a/solo.html +++ b/solo.html @@ -692,7 +692,15 @@ var formation = new Formation(1,6);
    -
    +
    + +
    + + + + +
    +
    diff --git a/style.css b/style.css index 55e6a761..abeb05c2 100644 --- a/style.css +++ b/style.css @@ -906,14 +906,15 @@ ul{ content: "最高Lv"; }*/ .skill-box .m-skill-level { - font-size: 18px; height: 30px; - width: 55px; + width: 50px; box-sizing: border-box; border: none; background: none; - font-family: 'FOT-KurokaneStd-EB', "Malgun Gothic", "맑은 고딕", "Gulim", AppleGothic; - color: white; + font-size: inherit; + font-family: inherit; + color: inherit; + text-shadow: inherit; } .skill-box .m-skill-lv-1,.skill-box .m-skill-lv-max{ height: 30px;