| @@ -230,7 +230,7 @@ function parseSkillDescription(skill) | |||||
| str = `对敌方全体造成自身攻击力×${sk[1]/100}倍的${attrN(sk[0])}属性伤害`; | str = `对敌方全体造成自身攻击力×${sk[1]/100}倍的${attrN(sk[0])}属性伤害`; | ||||
| break; | break; | ||||
| case 1: | case 1: | ||||
| str = `对敌方全体造成${sk[1]}点${attrN(sk[0])}属性伤害`; | |||||
| str = `对敌方全体造成${parseBigNumber(sk[1])}点${attrN(sk[0])}属性伤害`; | |||||
| break; | break; | ||||
| case 2: | case 2: | ||||
| str = `对敌方1体造成自身攻击力×${sk[0]/100}${sk[1]&&sk[1]!=sk[0]?'~'+sk[1]/100:''}倍的自身属性伤害`; | str = `对敌方1体造成自身攻击力×${sk[0]/100}${sk[1]&&sk[1]!=sk[0]?'~'+sk[1]/100:''}倍的自身属性伤害`; | ||||
| @@ -345,7 +345,7 @@ function parseSkillDescription(skill) | |||||
| str = `受到敌人攻击时${sk[0]==100?"":`有${sk[0]}的几率`}进行受到伤害${sk[1]/100}倍的${attrN(sk[2])}属性反击`; | str = `受到敌人攻击时${sk[0]==100?"":`有${sk[0]}的几率`}进行受到伤害${sk[1]/100}倍的${attrN(sk[2])}属性反击`; | ||||
| break; | break; | ||||
| case 42: | case 42: | ||||
| str = `对${attrN(sk[0])}属性敌人造成${sk[2]}点${attrN(sk[1])}属性伤害`; | |||||
| str = `对${attrN(sk[0])}属性敌人造成${parseBigNumber(sk[2])}点${attrN(sk[1])}属性伤害`; | |||||
| break; | break; | ||||
| case 43: | case 43: | ||||
| str = `HP ${sk[0]==100 ?"全满":`${sk[0]}%以上`}时${sk[1]<100?`有${sk[1]}的几率使`:""}受到的伤害减少${sk[2]}`; | str = `HP ${sk[0]==100 ?"全满":`${sk[0]}%以上`}时${sk[1]<100?`有${sk[1]}的几率使`:""}受到的伤害减少${sk[2]}`; | ||||
| @@ -380,10 +380,10 @@ function parseSkillDescription(skill) | |||||
| str = `进入地下城时为队长的话,获得的金币×${sk[0]/100}倍`; | str = `进入地下城时为队长的话,获得的金币×${sk[0]/100}倍`; | ||||
| break; | break; | ||||
| case 55: | case 55: | ||||
| str = `对敌方1体造成${sk[0]}点无视防御的固定伤害`; | |||||
| str = `对敌方1体造成${parseBigNumber(sk[0])}点无视防御的固定伤害`; | |||||
| break; | break; | ||||
| case 56: | case 56: | ||||
| str = `对敌方全体造成${sk[0]}点无视防御的固定伤害`; | |||||
| str = `对敌方全体造成${parseBigNumber(sk[0])}点无视防御的固定伤害`; | |||||
| break; | break; | ||||
| case 58: | case 58: | ||||
| str = `对敌方全体造成自身攻击力×${sk[1]/100}${sk[2]&&sk[2]!=sk[1]?'~'+sk[2]/100:''}倍的${attrN(sk[0])}属性伤害`; | str = `对敌方全体造成自身攻击力×${sk[1]/100}${sk[2]&&sk[2]!=sk[1]?'~'+sk[2]/100:''}倍的${attrN(sk[0])}属性伤害`; | ||||
| @@ -462,11 +462,11 @@ function parseSkillDescription(skill) | |||||
| str = `HP ${(sk[3]?(`减少${100-sk[3]}%`):"变为1")},对敌方全体造成自身攻击力×${sk[1]/100}${sk[2]&&sk[2]!=sk[1]?'~'+sk[2]/100:''}倍的${attrN(sk[0])}属性伤害`; | str = `HP ${(sk[3]?(`减少${100-sk[3]}%`):"变为1")},对敌方全体造成自身攻击力×${sk[1]/100}${sk[2]&&sk[2]!=sk[1]?'~'+sk[2]/100:''}倍的${attrN(sk[0])}属性伤害`; | ||||
| break; | break; | ||||
| case 86: | case 86: | ||||
| str = `HP ${(sk[3]?(`减少${100-sk[3]}%`):"变为1")},对敌方1体造成${sk[1]}点${attrN(sk[0])}属性伤害`; | |||||
| str = `HP ${(sk[3]?(`减少${100-sk[3]}%`):"变为1")},对敌方1体造成${parseBigNumber(sk[1])}点${attrN(sk[0])}属性伤害`; | |||||
| if (sk[2]) str += `未知 参数2 ${sk[2]}`; | if (sk[2]) str += `未知 参数2 ${sk[2]}`; | ||||
| break; | break; | ||||
| case 87: | case 87: | ||||
| str = `HP ${(sk[3]?(`减少${100-sk[3]}%`):"变为1")},对敌方全体造成${sk[1]}点${attrN(sk[0])}属性伤害`; | |||||
| str = `HP ${(sk[3]?(`减少${100-sk[3]}%`):"变为1")},对敌方全体造成${parseBigNumber(sk[1])}点${attrN(sk[0])}属性伤害`; | |||||
| if (sk[2]) str += `未知 参数2 ${sk[2]}`; | if (sk[2]) str += `未知 参数2 ${sk[2]}`; | ||||
| break; | break; | ||||
| case 88: | case 88: | ||||
| @@ -563,7 +563,7 @@ function parseSkillDescription(skill) | |||||
| li.setAttribute("data-skillid", repeatSkill[0]); | li.setAttribute("data-skillid", repeatSkill[0]); | ||||
| li.addEventListener("click",fastShowSkill); | li.addEventListener("click",fastShowSkill); | ||||
| li.appendChild(parseSkillDescription(Skills[repeatSkill[0]])); | li.appendChild(parseSkillDescription(Skills[repeatSkill[0]])); | ||||
| li.appendChild(document.createTextNode(`×${repeatSkill.length}次`)); | |||||
| li.appendChild(document.createTextNode(`×${repeatSkill.length}次(共${parseBigNumber(repeatDamage[0]*repeatSkill.length)})`)); | |||||
| noRepeatSk = sk.filter(subSkill => Skills[subSkill].type !== 188); | noRepeatSk = sk.filter(subSkill => Skills[subSkill].type !== 188); | ||||
| }else | }else | ||||
| { | { | ||||
| @@ -1134,15 +1134,6 @@ function parseSkillDescription(skill) | |||||
| break; | break; | ||||
| case 176: | case 176: | ||||
| //●◉○◍◯ | //●◉○◍◯ | ||||
| function boardData_fixed(dataArr,orbType) | |||||
| { | |||||
| const data = dataArr.map(flag=>new Array(6).fill(null).map((a,i)=> (1<<i & flag) ? (orbType || 0) : null)); | |||||
| data.splice(3,0,data[2].concat()); //将第2行复制插入为第3行 | |||||
| data.forEach(rowData => | |||||
| rowData.splice(4,0,rowData[3]) //将第3个复制插入为第4个 | |||||
| ); | |||||
| return data; | |||||
| } | |||||
| fragment.appendChild(document.createTextNode(`以如下形状生成${attrN(sk[5])}宝珠`)); | fragment.appendChild(document.createTextNode(`以如下形状生成${attrN(sk[5])}宝珠`)); | ||||
| var data = boardData_fixed([sk[0],sk[1],sk[2],sk[3],sk[4]], sk[5]); | var data = boardData_fixed([sk[0],sk[1],sk[2],sk[3],sk[4]], sk[5]); | ||||
| var table = createBoard(data); | var table = createBoard(data); | ||||
| @@ -1176,7 +1167,7 @@ function parseSkillDescription(skill) | |||||
| if (sk[3] || sk[4] || sk[5]) str += "的"+getFixedHpAtkRcvString({hp:sk[3],atk:sk[4],rcv:sk[5]}); | if (sk[3] || sk[4] || sk[5]) str += "的"+getFixedHpAtkRcvString({hp:sk[3],atk:sk[4],rcv:sk[5]}); | ||||
| break; | break; | ||||
| case 179: | case 179: | ||||
| str = `${sk[0]}回合内,每回合回复${sk[1]?`${sk[1]}点`:` HP 上限 ${sk[2]}%`}的 HP`; | |||||
| str = `${sk[0]}回合内,每回合回复${sk[1]?`${parseBigNumber(sk[1])}点`:` HP 上限 ${sk[2]}%`}的 HP`; | |||||
| if(sk[3] || sk[4]) | if(sk[3] || sk[4]) | ||||
| { | { | ||||
| str += `,并将`; | str += `,并将`; | ||||
| @@ -1217,7 +1208,7 @@ function parseSkillDescription(skill) | |||||
| if (sk[0] || sk[1]) str += getAttrTypeString(flags(sk[0]),flags(sk[1])) + "宠物的" + getFixedHpAtkRcvString({hp:sk[2],atk:sk[3],rcv:sk[4]}); | if (sk[0] || sk[1]) str += getAttrTypeString(flags(sk[0]),flags(sk[1])) + "宠物的" + getFixedHpAtkRcvString({hp:sk[2],atk:sk[3],rcv:sk[4]}); | ||||
| break; | break; | ||||
| case 188: //多次单体固伤 | case 188: //多次单体固伤 | ||||
| str = `对敌方1体造成${sk[0]}点无视防御的固定伤害`; | |||||
| str = `对敌方1体造成${parseBigNumber(sk[0])}点无视防御的固定伤害`; | |||||
| break; | break; | ||||
| case 189: | case 189: | ||||
| //解除寶珠的鎖定狀態;所有寶珠變成火、水、木、光;顯示3COMBO的轉珠路徑(只適用於普通地下城&3個消除) | //解除寶珠的鎖定狀態;所有寶珠變成火、水、木、光;顯示3COMBO的轉珠路徑(只適用於普通地下城&3個消除) | ||||
| @@ -1295,10 +1286,10 @@ function parseSkillDescription(skill) | |||||
| } | } | ||||
| if (!atSameTime) str+=`${sk[1]}种属性以上`; | if (!atSameTime) str+=`${sk[1]}种属性以上`; | ||||
| else if(sk[0] == 31) str += `5色`; | else if(sk[0] == 31) str += `5色`; | ||||
| str += `同时攻击时,追加${sk[2]}点固定伤害`; | |||||
| str += `同时攻击时,追加${parseBigNumber(sk[2])}点固定伤害`; | |||||
| break; | break; | ||||
| case 200: | case 200: | ||||
| str = `相连消除${sk[1]}个或以上的${getOrbsAttrString(sk[0],true)}宝珠时,追加${sk[2]}点固定伤害`; | |||||
| str = `相连消除${sk[1]}个或以上的${getOrbsAttrString(sk[0],true)}宝珠时,追加${parseBigNumber(sk[2])}点固定伤害`; | |||||
| break; | break; | ||||
| case 201: | case 201: | ||||
| fullColor = sk.slice(0,4).filter(c=>c>0); //最多4串珠 | fullColor = sk.slice(0,4).filter(c=>c>0); //最多4串珠 | ||||
| @@ -1311,7 +1302,7 @@ function parseSkillDescription(skill) | |||||
| {//光寶珠有2COMBO或以上時 | {//光寶珠有2COMBO或以上時 | ||||
| str = `${nb(fullColor[0], attrsName).join("、")}宝珠有${sk[4]}串或以上时`; | str = `${nb(fullColor[0], attrsName).join("、")}宝珠有${sk[4]}串或以上时`; | ||||
| } | } | ||||
| if (sk[5]) str += `,追加${sk[5]}点固定伤害`; | |||||
| if (sk[5]) str += `,追加${parseBigNumber(sk[5])}点固定伤害`; | |||||
| break; | break; | ||||
| case 202: | case 202: | ||||
| fragment.appendChild(document.createTextNode("变身为")); | fragment.appendChild(document.createTextNode("变身为")); | ||||
| @@ -1359,24 +1350,23 @@ function parseSkillDescription(skill) | |||||
| if (sk[6]) str += `,结算时连击数+${sk[6]}`; | if (sk[6]) str += `,结算时连击数+${sk[6]}`; | ||||
| break; | break; | ||||
| case 207: | case 207: | ||||
| str = `${sk[0]}回合内,`; | |||||
| fragment.appendChild(document.createTextNode(`${sk[0]}回合内,`)); | |||||
| if (sk[7]) | if (sk[7]) | ||||
| { | { | ||||
| str += `随机${sk[7]}个位置上的宝珠,`; | |||||
| fragment.appendChild(document.createTextNode(`随机${sk[7]}个位置上的宝珠,`)); | |||||
| }else | }else | ||||
| { | { | ||||
| str += `以下位置上的宝珠,`; | |||||
| fragment.appendChild(document.createTextNode(`以下位置上的宝珠,`)); | |||||
| } | } | ||||
| str += `每隔${Math.abs(sk[1]/100)}秒不断转换`; | |||||
| fragment.appendChild(document.createTextNode(`每隔${Math.abs(sk[1]/100)}秒不断转换`)); | |||||
| if (!sk[7]) | if (!sk[7]) | ||||
| { | { | ||||
| str += `<br>`; | |||||
| var table = [sk[2],sk[3],sk[4],sk[5],sk[6]]; | |||||
| str += table.map(r=>{ | |||||
| const line = new Array(6).fill(null).map((a,i)=> (1<<i & r) ? "●":"○"); | |||||
| return line.join(""); | |||||
| }).join("<br>"); | |||||
| var data = boardData_fixed([sk[2],sk[3],sk[4],sk[5],sk[6]], 6); | |||||
| var table = createBoard(data); | |||||
| table.classList.add("fixed-shape-orb"); | |||||
| fragment.appendChild(table); | |||||
| } | } | ||||
| return fragment; | |||||
| break; | break; | ||||
| case 209: | case 209: | ||||
| str = `以十字形式消除5个${attrN(5)}宝珠时`; | str = `以十字形式消除5个${attrN(5)}宝珠时`; | ||||