|
|
|
@@ -33,6 +33,22 @@ function parseSkillDescription(skill) |
|
|
|
function typeN(i){return typeName[i || 0] || ("未知类型" + i);}
|
|
|
|
//返回觉醒名
|
|
|
|
function awokenN(i){return awokenName[(i || 0)-1] || ("未知觉醒" + i);}
|
|
|
|
//返回怪物名
|
|
|
|
function cardN(id){
|
|
|
|
let card = Cards[id || 0];
|
|
|
|
if (!card)
|
|
|
|
{
|
|
|
|
return "没有该宠物 " + id;
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
const monOuterDom = document.createElement("span");
|
|
|
|
monOuterDom.className = "detail-mon";
|
|
|
|
const monDom = createCardA(id);
|
|
|
|
monOuterDom.appendChild(monDom);
|
|
|
|
changeid({id:id},monDom);
|
|
|
|
return monOuterDom.outerHTML;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//从二进制的数字中获得布尔值数组
|
|
|
|
function getBooleanFromBinary(num,reverse=true)
|
|
|
|
{ /*num是输入的数字,2的N次方在2进制下表示1后面跟着N个0。
|
|
|
|
@@ -41,6 +57,10 @@ function parseSkillDescription(skill) |
|
|
|
if (reverse) arr.reverse();
|
|
|
|
return arr;
|
|
|
|
}
|
|
|
|
//返回flag里值为true的数组,如[1,4,7]
|
|
|
|
function flags(num){
|
|
|
|
return Array.from(new Array(33)).map((a,i)=>{return i;}).filter(i => num & (1 << i));
|
|
|
|
}
|
|
|
|
//从二进制的数字中获得有哪些内容
|
|
|
|
function getNamesFromBinary(num,dataArr)
|
|
|
|
{ /*num是输入的数字,2的N次方在2进制下表示1后面跟着N个0。
|
|
|
|
@@ -56,8 +76,82 @@ function parseSkillDescription(skill) |
|
|
|
}
|
|
|
|
const nb = getNamesFromBinary; //化简名称
|
|
|
|
|
|
|
|
function getAttrTypeString(attrsArray,typesArray)
|
|
|
|
{
|
|
|
|
let outArr = [];
|
|
|
|
if (attrsArray.length)
|
|
|
|
{
|
|
|
|
outArr.push(attrsArray.map(attrN).join("、") + "属性");
|
|
|
|
}
|
|
|
|
if (typesArray.length)
|
|
|
|
{
|
|
|
|
outArr.push(typesArray.map(typeN).join("、") + "类型");
|
|
|
|
}
|
|
|
|
return outArr.join("和");
|
|
|
|
}
|
|
|
|
function stats(value, statTypes)
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
statTypes.indexOf(1) >= 0 ? value : 100, //攻击
|
|
|
|
statTypes.indexOf(2) >= 0 ? value : 100 //回复
|
|
|
|
];
|
|
|
|
}
|
|
|
|
const mulName = ["HP","攻击力","回复力"];
|
|
|
|
//获取固定的三维成长的名称
|
|
|
|
function getFixedHpAtkRcvString(values)
|
|
|
|
{
|
|
|
|
let mulArr = null;
|
|
|
|
if (Array.isArray(values)) {
|
|
|
|
mulArr = [
|
|
|
|
1,
|
|
|
|
values[0] / 100,
|
|
|
|
values[1] / 100,
|
|
|
|
];
|
|
|
|
} else
|
|
|
|
{
|
|
|
|
mulArr = [
|
|
|
|
(values.hp || 100) / 100,
|
|
|
|
(values.atk || 100) / 100,
|
|
|
|
(values.rcv || 100) / 100
|
|
|
|
];
|
|
|
|
}
|
|
|
|
const hasMul = mulArr.filter(m=>{return m != 1;}); //不是1的数值
|
|
|
|
let str = "";
|
|
|
|
if (hasMul)
|
|
|
|
{
|
|
|
|
const hasDiff = hasMul.filter(m=>{return m != hasMul[0];}).length > 0; //存在不一样的值
|
|
|
|
if (hasDiff)
|
|
|
|
{
|
|
|
|
str += mulArr.map((m,i)=>{
|
|
|
|
return m!=1?`${mulName[i]}×${m}倍`:null;
|
|
|
|
}).filter(s=>{return s!=null;}).join(",");
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
let hasMulName = mulName.filter((n,i)=>{return mulArr[i] != 1;});
|
|
|
|
if (hasMulName.length>=3)
|
|
|
|
{
|
|
|
|
str+=hasMulName.slice(0,hasMulName.length-1).join("、") + "和" + hasMulName[hasMulName.length-1];
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
str+=hasMulName.join("和");
|
|
|
|
}
|
|
|
|
str += `×${hasMul[0]}倍`;
|
|
|
|
}
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
str += "没有变化";
|
|
|
|
}
|
|
|
|
return str;
|
|
|
|
}
|
|
|
|
const mul = getFixedHpAtkRcvString;
|
|
|
|
function getScaleAtkRcvString(ATK,RCV)
|
|
|
|
{
|
|
|
|
//{base,min,max,bonus}
|
|
|
|
//if (tyof(HP) == "number")
|
|
|
|
}
|
|
|
|
|
|
|
|
let str = null;
|
|
|
|
let strArr = null;
|
|
|
|
let strArr = null,fullColor = null,atSameTime = null,hasDiffOrbs = null;
|
|
|
|
switch(type)
|
|
|
|
{
|
|
|
|
case 0:
|
|
|
|
@@ -169,8 +263,8 @@ function parseSkillDescription(skill) |
|
|
|
if (sk[1]!=100) str+=`未知的 参数1 ${sk[1]}`;
|
|
|
|
break;
|
|
|
|
case 39:
|
|
|
|
strArr = [sk[1],sk[2]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击"; else if(s==2) return "回复";})
|
|
|
|
str = `HP ${sk[0]==100?"全满":`${sk[0]}%以下`}时所有宠物的${strArr.join("和")}${sk[3]/100}倍`;
|
|
|
|
strArr = [sk[1],sk[2]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击力"; else if(s==2) return "回复力";});
|
|
|
|
str = `HP ${sk[0]==100?"全满":`${sk[0]}%以下`}时所有宠物的${strArr.join("和")}×${sk[3]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 40:
|
|
|
|
str = `${sk.slice(0,sk.length-1).map(t=>{return attrN(t);}).join("、")}属性宠物的攻击力×${sk[sk.length-1]/100}倍`;
|
|
|
|
@@ -185,10 +279,10 @@ function parseSkillDescription(skill) |
|
|
|
str = `HP ${sk[0]==100 ?"全满":`${sk[0]}%以上`}时${sk[1]<100?`有${sk[1]}的几率使`:""}受到的伤害减少${sk[2]}`;
|
|
|
|
break;
|
|
|
|
case 44:
|
|
|
|
strArr = [sk[1],sk[2]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击"; else if(s==2) return "回复";})
|
|
|
|
str = `HP ${sk[0]==100?"全满":`${sk[0]}%以上`}时所有宠物的${strArr.join("和")}${sk[3]/100}倍`;
|
|
|
|
strArr = [sk[1],sk[2]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击力"; else if(s==2) return "回复力";});
|
|
|
|
str = `HP ${sk[0]==100?"全满":`${sk[0]}%以上`}时所有宠物的${strArr.join("和")}×${sk[3]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 45:
|
|
|
|
case 45: case 111:
|
|
|
|
str = `${sk.slice(0,sk.length-1).map(t=>{return attrN(t);}).join("、")}属性宠物的 HP 和攻击力×${sk[sk.length-1]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 46:case 48:
|
|
|
|
@@ -225,8 +319,8 @@ function parseSkillDescription(skill) |
|
|
|
str = `${sk[0]}回合内,受到伤害时进行受到伤害${sk[1]/100+"倍的"+attrN(sk[2])}属性反击`;
|
|
|
|
break;
|
|
|
|
case 61:
|
|
|
|
let fullColor = nb(sk[0], attrsName);
|
|
|
|
let atSameTime = fullColor.length == sk[1];
|
|
|
|
fullColor = nb(sk[0], attrsName);
|
|
|
|
atSameTime = fullColor.length == sk[1];
|
|
|
|
if (sk[0] == 31) //31-11111
|
|
|
|
{ //单纯5色
|
|
|
|
str = '';
|
|
|
|
@@ -275,15 +369,24 @@ function parseSkillDescription(skill) |
|
|
|
}
|
|
|
|
str = "全画面的宝珠变成" + strArr.map((o)=>{return attrN(o);}).join("、");
|
|
|
|
break;
|
|
|
|
case 73:
|
|
|
|
str = `${attrN(sk[0])}属性和${typeN(sk[1])}类型宠物的 HP 和攻击力×${sk[2]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 75:
|
|
|
|
str = `${attrN(sk[0])}属性和${typeN(sk[1])}类型宠物的攻击力和回复力×${sk[2]/100}倍`;
|
|
|
|
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}倍`;
|
|
|
|
strArr = [];
|
|
|
|
if (sk[0] & 31 == 31)
|
|
|
|
{
|
|
|
|
strArr.push("所有");
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
if (sk[0]) {strArr.push(nb(sk[0],attrsName).join("、") + "属性");}
|
|
|
|
if (sk[1]) {strArr.push(nb(sk[1],typeName).join("、") + "类型");}
|
|
|
|
}
|
|
|
|
str += strArr.join("和") + "宠物的";
|
|
|
|
str += ` HP 、攻击力和回复力${sk[2]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 84:
|
|
|
|
str = `HP ${(sk[3]?(`减少${sk[3]}%`):"变为1")},对敌方1体造成自身攻击力×${sk[1]/100}${sk[1]!=sk[2]?`~${+sk[2]/100}`:""}倍的${attrN(sk[0])}属性伤害`;
|
|
|
|
@@ -317,33 +420,42 @@ function parseSkillDescription(skill) |
|
|
|
if (sk[0]) str += `未知 参数0 ${sk[0]}`;
|
|
|
|
break;
|
|
|
|
case 94:
|
|
|
|
strArr = [sk[2],sk[3]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击"; else if(s==2) return "回复";})
|
|
|
|
str = `HP ${sk[0]==100?"全满":`${sk[0]}%以下`}时${attrN(sk[1])}属性宠物的${strArr.join("和")}${sk[4]/100}倍`;
|
|
|
|
strArr = [sk[2],sk[3]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击力"; else if(s==2) return "回复力";});
|
|
|
|
str = `HP ${sk[0]==100?"全满":`${sk[0]}%以下`}时${attrN(sk[1])}属性宠物的${strArr.join("和")}×${sk[4]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 95:
|
|
|
|
strArr = [sk[2],sk[3]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击"; else if(s==2) return "回复";})
|
|
|
|
str = `HP ${sk[0]==100?"全满":`${sk[0]}%以下`}时${typeN(sk[1])}类型宠物的${strArr.join("和")}${sk[4]/100}倍`;
|
|
|
|
strArr = [sk[2],sk[3]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击力"; else if(s==2) return "回复力";});
|
|
|
|
str = `HP ${sk[0]==100?"全满":`${sk[0]}%以下`}时${typeN(sk[1])}类型宠物的${strArr.join("和")}×${sk[4]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 96:
|
|
|
|
strArr = [sk[2],sk[3]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击"; else if(s==2) return "回复";})
|
|
|
|
str = `HP ${sk[0]==100?"全满":`${sk[0]}%以上`}时${attrN(sk[1])}属性宠物的${strArr.join("和")}${sk[4]/100}倍`;
|
|
|
|
strArr = [sk[2],sk[3]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击力"; else if(s==2) return "回复力";});
|
|
|
|
str = `HP ${sk[0]==100?"全满":`${sk[0]}%以上`}时${attrN(sk[1])}属性宠物的${strArr.join("和")}×${sk[4]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 97:
|
|
|
|
strArr = [sk[2],sk[3]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击"; else if(s==2) return "回复";})
|
|
|
|
str = `HP ${sk[0]==100?"全满":`${sk[0]}%以上`}时${typeN(sk[1])}类型宠物的${strArr.join("和")}${sk[4]/100}倍`;
|
|
|
|
strArr = [sk[2],sk[3]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击力"; else if(s==2) return "回复力";});
|
|
|
|
str = `HP ${sk[0]==100?"全满":`${sk[0]}%以上`}时${typeN(sk[1])}类型宠物的${strArr.join("和")}×${sk[4]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 98:
|
|
|
|
str = `${sk[0]}连击时,所有宠物的攻击力${sk[1]/100}倍,每多1连击+${sk[2]/100}倍,最大${sk[3]}连击时${(sk[1]+sk[2]*(sk[3]-sk[0]))/100}倍`;
|
|
|
|
break;
|
|
|
|
case 100:
|
|
|
|
strArr = [sk[0],sk[1]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击力"; else if(s==2) return "回复力";});
|
|
|
|
str = `使用技能时,所有宠物的${strArr.join("和")}×${sk[2]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 103:
|
|
|
|
strArr = [sk[1],sk[2]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击力"; else if(s==2) return "回复力";});
|
|
|
|
str = `${sk[0]}连击或以上时所有宠物的${strArr.join("和")}×${sk[3]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 104:
|
|
|
|
strArr = [sk[2],sk[3]].filter(s=>{return s>0;}).map(s=>{if(s==1) return "攻击力"; else if(s==2) return "回复力";});
|
|
|
|
str = `${sk[0]}连击以上时时${nb(sk[1],attrsName).join("、")}属性宠物的${strArr.join("和")}×${sk[4]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 108:
|
|
|
|
str = `HP 变为${sk[0]}%,${typeN(sk[1])}类型宠物的攻击力×${sk[2]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 110:
|
|
|
|
str = `根据余下 HP 对敌方${sk[0]?"1":"全"}体造成${attrN(sk[1])}属性伤害(100% HP 时为自身攻击力×${sk[2]/100}倍,1 HP 时为自身攻击力×${sk[3]/100}倍)`;
|
|
|
|
break;
|
|
|
|
case 111:
|
|
|
|
str = `${sk.slice(0,sk.length-1).map(t=>{return attrN(t);}).join("、")}属性宠物的 HP 和攻击力×${sk[sk.length-1]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 115:
|
|
|
|
str = `对敌方1体造成自身攻击力×${sk[1]/100}倍的${attrN(sk[0])}属性伤害,并回复伤害${sk[2]}%的 HP `;
|
|
|
|
break;
|
|
|
|
@@ -390,69 +502,213 @@ function parseSkillDescription(skill) |
|
|
|
case 121:
|
|
|
|
str = ``;
|
|
|
|
strArr =[];
|
|
|
|
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("和") + "宠物的";
|
|
|
|
if (sk[0] & 31 == 31)
|
|
|
|
{
|
|
|
|
strArr.push("所有");
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
if (sk[0]) {strArr.push(nb(sk[0],attrsName).join("、") + "属性");}
|
|
|
|
if (sk[1]) {strArr.push(nb(sk[1],typeName).join("、") + "类型");}
|
|
|
|
}
|
|
|
|
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("、");
|
|
|
|
break;
|
|
|
|
case 122:
|
|
|
|
str = `HP ${sk[0]}%以下时`;
|
|
|
|
strArr =[];
|
|
|
|
if (sk[1] & 31 != 31)
|
|
|
|
{
|
|
|
|
if (sk[1]) {strArr.push(nb(sk[1],attrsName).join("、") + "属性");}
|
|
|
|
if (sk[2]) {strArr.push(nb(sk[2],typeName).join("、") + "类型");}
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
strArr.push("所有");
|
|
|
|
}
|
|
|
|
str += strArr.join("和") + "宠物的";
|
|
|
|
strArr =[];
|
|
|
|
if (sk[3]) {strArr.push(`攻击力×${sk[3]/100}倍`);}
|
|
|
|
if (sk[4]) {strArr.push(`回复力×${sk[4]/100}倍`);}
|
|
|
|
str += strArr.join("、");
|
|
|
|
break;
|
|
|
|
case 123:
|
|
|
|
str = `HP ${sk[0]}%以上时`;
|
|
|
|
strArr =[];
|
|
|
|
if (sk[1] & 31 != 31)
|
|
|
|
{
|
|
|
|
if (sk[1]) {strArr.push(nb(sk[1],attrsName).join("、") + "属性");}
|
|
|
|
if (sk[2]) {strArr.push(nb(sk[2],typeName).join("、") + "类型");}
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
strArr.push("所有");
|
|
|
|
}
|
|
|
|
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}倍`);}
|
|
|
|
if (sk[3]) {strArr.push(`攻击力×${sk[3]/100}倍`);}
|
|
|
|
if (sk[4]) {strArr.push(`回复力×${sk[4]/100}倍`);}
|
|
|
|
str += strArr.join("、");
|
|
|
|
break;
|
|
|
|
case 124:
|
|
|
|
strArr = sk.slice(0,5).filter(c=>{return c>0;}); //最多5串珠
|
|
|
|
let hasDiffOrbs = strArr.filter(s=>{return s!= strArr[0]}).length > 0; //是否存在不同色的珠子
|
|
|
|
hasDiffOrbs = strArr.filter(s=>{return s!= strArr[0];}).length > 0; //是否存在不同色的珠子
|
|
|
|
if (sk[5] < strArr.length) //有阶梯的
|
|
|
|
{
|
|
|
|
if (hasDiffOrbs)
|
|
|
|
{//「光光火/光火火」組合的3COMBO時,所有寵物的攻擊力3.5倍;「光光火火」組合的4COMBO或以上時,所有寵物的攻擊力6倍
|
|
|
|
str = `${strArr.map(a=>{return nb(a, attrsName);}).join("、")}中${sk[5]}串同时攻击时,所有宠物的攻击力${sk[6]/100}倍,每多1串+${sk[7]/100}倍,最大${strArr.length}串时${(sk[6]+sk[7]*(strArr.length-sk[5]))/100}倍`;
|
|
|
|
str = `${strArr.map(a=>{return nb(a, attrsName);}).join("、")}中${sk[5]}串同时攻击时,所有宠物的攻击力×${sk[6]/100}倍,每多1串+${sk[7]/100}倍,最大${strArr.length}串时×${(sk[6]+sk[7]*(strArr.length-sk[5]))/100}倍`;
|
|
|
|
}else
|
|
|
|
{//木寶珠有2COMBO時,所有寵物的攻擊力3倍,每多1COMBO+4倍,最大5COMBO時15倍
|
|
|
|
str = `${nb(strArr[0], attrsName).join("、")}宝珠有${strArr.length}串时,所有宠物的攻击力${sk[6]/100}倍,每多1串+${sk[7]/100}倍,最大${strArr.length}串时${(sk[6]+sk[7]*(strArr.length-sk[5]))/100}倍`;
|
|
|
|
str = `${nb(strArr[0], attrsName).join("、")}宝珠有${strArr.length}串时,所有宠物的攻击力×${sk[6]/100}倍,每多1串+${sk[7]/100}倍,最大${strArr.length}串时×${(sk[6]+sk[7]*(strArr.length-sk[5]))/100}倍`;
|
|
|
|
}
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
if (hasDiffOrbs)
|
|
|
|
{//火光同時攻擊時,所有寵物的攻擊力2倍
|
|
|
|
str = `${strArr.map(a=>{return nb(a, attrsName);}).join("、")}同时攻击时,所有宠物的攻击力${sk[6]/100}倍`;
|
|
|
|
str = `${strArr.map(a=>{return nb(a, attrsName);}).join("、")}同时攻击时,所有宠物的攻击力×${sk[6]/100}倍`;
|
|
|
|
}else
|
|
|
|
{//光寶珠有2COMBO或以上時,所有寵物的攻擊力3倍
|
|
|
|
str = `${nb(strArr[0], attrsName).join("、")}宝珠有${strArr.length}串或以上时,所有宠物的攻击力${sk[6]/100}倍`;
|
|
|
|
str = `${nb(strArr[0], attrsName).join("、")}宝珠有${strArr.length}串或以上时,所有宠物的攻击力×${sk[6]/100}倍`;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 125: //隊伍中同時存在 時,所有寵物的攻擊力3.5倍
|
|
|
|
strArr = sk.slice(0,5).filter(s=>{return s>=0;});
|
|
|
|
str = `队伍中${strArr.length>1?"同时":""}存在`;
|
|
|
|
str += strArr.map(cardN).join("");
|
|
|
|
str += "时所有宠物的";
|
|
|
|
strArr =[];
|
|
|
|
if (sk[5]) {strArr.push(`HP×${sk[5]/100}倍`);}
|
|
|
|
if (sk[6]) {strArr.push(`攻击力×${sk[6]/100}倍`);}
|
|
|
|
if (sk[7]) {strArr.push(`回复力×${sk[7]/100}倍`);}
|
|
|
|
str += strArr.join("、");
|
|
|
|
break;
|
|
|
|
case 126:
|
|
|
|
str = `${sk[1]}${sk[1] != sk[2]?`~${sk[2]}`:""}回合内${nb(sk[0], attrsName).join("、")}珠的掉落率提高${sk[3]}%`;
|
|
|
|
break;
|
|
|
|
case 127: //生成竖列
|
|
|
|
strArr = [];
|
|
|
|
for (let ai=0;ai<ak.length;ai+=2)
|
|
|
|
for (let ai=0;ai<sk.length;ai+=2)
|
|
|
|
{
|
|
|
|
strArr.push(`${nb(ak[ai],ClumsN).join("、")}的宝珠变为${nb(ak[ai+1],attrsName).join("、")}`);
|
|
|
|
strArr.push(`${nb(sk[ai],ClumsN).join("、")}的宝珠变为${nb(sk[ai+1],attrsName).join("、")}`);
|
|
|
|
}
|
|
|
|
str = strArr.join(",");
|
|
|
|
break;
|
|
|
|
case 128: //生成横
|
|
|
|
strArr = [];
|
|
|
|
for (let ai=0;ai<ak.length;ai+=2)
|
|
|
|
for (let ai=0;ai<sk.length;ai+=2)
|
|
|
|
{
|
|
|
|
strArr.push(`${nb(ak[ai],RowsN).join("、")}的宝珠变为${nb(ak[ai+1],attrsName).join("、")}`);
|
|
|
|
strArr.push(`${nb(sk[ai],RowsN).join("、")}的宝珠变为${nb(sk[ai+1],attrsName).join("、")}`);
|
|
|
|
}
|
|
|
|
str = strArr.join(",");
|
|
|
|
break;
|
|
|
|
case 139:
|
|
|
|
case 129:
|
|
|
|
str = ``;
|
|
|
|
strArr =[];
|
|
|
|
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 += ` HP ${sk[2]==(sk[3]||100)?(sk[2]==100?"全满":`${sk[2]}%`):(sk[3]==0?`${sk[2]}%以上`:`${sk[2]}%~${sk[3]}%`)}时攻击力${sk[4]/100}倍`;
|
|
|
|
str += `,HP ${sk[5]==(sk[6]||sk[5])?(sk[5]==100?"全满":`${sk[6]}%`):(sk[6]<=1?`${sk[5]}%以下`:`${sk[5]}%~${sk[6]}%`)}时攻击力${sk[7]/100}倍`;
|
|
|
|
if (sk[0] & 31 == 31)
|
|
|
|
{
|
|
|
|
strArr.push("所有");
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
if (sk[0]) {strArr.push(nb(sk[0],attrsName).join("、") + "属性");}
|
|
|
|
if (sk[1]) {strArr.push(nb(sk[1],typeName).join("、") + "类型");}
|
|
|
|
}
|
|
|
|
str += strArr.join("和") + "宠物的";
|
|
|
|
|
|
|
|
let hasArr = [sk[2],sk[3],sk[4]].filter(s=>{return s>0;}); //储存会增加的
|
|
|
|
let hasDiffScale = hasArr.filter(s=>{return s!=hasArr[0];}).length > 0; //判断是否有重复的
|
|
|
|
strArr = [];
|
|
|
|
if (hasDiffScale) //如果大家的值不一样,则不合并
|
|
|
|
{
|
|
|
|
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("、");
|
|
|
|
}else //如果大家的值一样,则合并
|
|
|
|
{
|
|
|
|
if (sk[2]) {strArr.push(` HP `);}
|
|
|
|
if (sk[3]) {strArr.push(`攻击力`);}
|
|
|
|
if (sk[4]) {strArr.push(`回复力`);}
|
|
|
|
if (strArr.length)
|
|
|
|
{
|
|
|
|
if (strArr.length <= 2)
|
|
|
|
{
|
|
|
|
str += strArr.join("和") + `×${hasArr[0]/100}倍`;
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
str += strArr.slice(0,strArr.length-1).join("、") + `和${strArr[strArr.length-1]}×${hasArr[0]/100}倍`;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (sk[5]) {
|
|
|
|
if (strArr.length)str += ",";
|
|
|
|
str += `受到的${nb(sk[5],attrsName).join("、")}属性伤害减少${sk[6]}%`;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 130:
|
|
|
|
str = `HP ${sk[0]}%以下时`;
|
|
|
|
strArr =[];
|
|
|
|
if (sk[1] & 31 == 31)
|
|
|
|
{
|
|
|
|
strArr.push("所有");
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
if (sk[1]) {strArr.push(nb(sk[1],attrsName).join("、") + "属性");}
|
|
|
|
if (sk[2]) {strArr.push(nb(sk[2],typeName).join("、") + "类型");}
|
|
|
|
}
|
|
|
|
str += strArr.join("和") + "宠物的";
|
|
|
|
strArr =[];
|
|
|
|
if (sk[3]) {strArr.push(`攻击力×${sk[3]/100}倍`);}
|
|
|
|
if (sk[4]) {strArr.push(`回复力×${sk[4]/100}倍`);}
|
|
|
|
str += strArr.join("、");
|
|
|
|
if (sk[5]) {
|
|
|
|
if (strArr.length)str += ",";
|
|
|
|
str += `受到的${nb(sk[5],attrsName).join("、")}属性伤害减少${sk[6]}%`;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 131:
|
|
|
|
str = `HP ${sk[0]}%以上时`;
|
|
|
|
strArr =[];
|
|
|
|
if (sk[1] & 31 == 31)
|
|
|
|
{
|
|
|
|
strArr.push("所有");
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
if (sk[1]) {strArr.push(nb(sk[1],attrsName).join("、") + "属性");}
|
|
|
|
if (sk[2]) {strArr.push(nb(sk[2],typeName).join("、") + "类型");}
|
|
|
|
}
|
|
|
|
str += strArr.join("和") + "宠物的";
|
|
|
|
strArr =[];
|
|
|
|
if (sk[3]) {strArr.push(`攻击力×${sk[3]/100}倍`);}
|
|
|
|
if (sk[4]) {strArr.push(`回复力×${sk[4]/100}倍`);}
|
|
|
|
str += strArr.join("、");
|
|
|
|
if (sk[5]) {
|
|
|
|
if (strArr.length)str += ",";
|
|
|
|
str += `受到的${nb(sk[5],attrsName).join("、")}属性伤害减少${sk[6]}%`;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 132:
|
|
|
|
str = `${sk[0]}回合内,宝珠移动时间${sk[1]?`增加${sk[1]/10}秒`:""}${sk[2]?`变为${sk[2]/100}倍`:""}`;
|
|
|
|
break;
|
|
|
|
case 133:
|
|
|
|
str = `使用技能时,`;
|
|
|
|
strArr =[];
|
|
|
|
if (sk[0] & 31 == 31)
|
|
|
|
{
|
|
|
|
strArr.push("所有");
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
if (sk[0]) {strArr.push(nb(sk[0],attrsName).join("、") + "属性");}
|
|
|
|
if (sk[1]) {strArr.push(nb(sk[1],typeName).join("、") + "类型");}
|
|
|
|
}
|
|
|
|
str += strArr.join("和") + "宠物的";
|
|
|
|
strArr =[];
|
|
|
|
if (sk[2]) {strArr.push(`攻击力×${sk[2]/100}倍`);}
|
|
|
|
if (sk[3]) {strArr.push(`回复力×${sk[3]/100}倍`);}
|
|
|
|
str += strArr.join("、");
|
|
|
|
break;
|
|
|
|
case 138: //多内容队长技能,按顺序组合发动如下队长技能:
|
|
|
|
str = `<ul class="leader-skill-ul">`;
|
|
|
|
str += sk.map(subSkill => {return `<li class="leader-skill-li">${parseSkillDescription(Skills[subSkill])}</li>`;}).join("");
|
|
|
|
@@ -461,18 +717,17 @@ function parseSkillDescription(skill) |
|
|
|
case 139:
|
|
|
|
str = ``;
|
|
|
|
strArr =[];
|
|
|
|
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("和") + "宠物";
|
|
|
|
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[5]) {
|
|
|
|
if (str.length)str += ",";
|
|
|
|
str += `受到的${nb(sk[5],attrsName).join("、")}属性伤害减少${sk[6]}%`;
|
|
|
|
if (sk[0] & 31 == 31)
|
|
|
|
{
|
|
|
|
strArr.push("所有");
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
if (sk[0]) {strArr.push(nb(sk[0],attrsName).join("、") + "属性");}
|
|
|
|
if (sk[1]) {strArr.push(nb(sk[1],typeName).join("、") + "类型");}
|
|
|
|
}
|
|
|
|
str += strArr.join("和") + "宠物的";
|
|
|
|
str += ` HP ${sk[2]==(sk[3]||100)?(sk[2]==100?"全满":`${sk[2]}%`):(sk[3]==0?`${sk[2]}%以上`:`${sk[2]}%~${sk[3]}%`)}时攻击力${sk[4]/100}倍`;
|
|
|
|
str += `,HP ${sk[5]==(sk[6]||sk[5])?(sk[5]==100?"全满":`${sk[6]}%`):(sk[6]<=1?`${sk[5]}%以下`:`${sk[5]}%~${sk[6]}%`)}时攻击力${sk[7]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 140:
|
|
|
|
str = `${nb(sk[0],attrsName).join("、")}宝珠强化(每颗强化珠伤害/回复增加${sk[1]}%)`;
|
|
|
|
@@ -493,6 +748,18 @@ function parseSkillDescription(skill) |
|
|
|
case 148:
|
|
|
|
str = `进入地下城时为队长的话,获得的经验${sk[0]/100}倍`;
|
|
|
|
break;
|
|
|
|
case 150: //相連消除5粒寶珠,而當中包含至少1粒強化寶珠時,該屬性的攻擊力1.5倍
|
|
|
|
str = `相连消除5粒宝珠,而当中包含至少1粒强化宝珠时,该属性的攻击力${sk[1]/100}倍`;
|
|
|
|
if (sk[0]) str += `未知的 参数0 ${sk[0]}`;
|
|
|
|
break;
|
|
|
|
case 151:
|
|
|
|
str = `以十字形式消除5个${attrN(5)}宝珠时`;
|
|
|
|
strArr = [];
|
|
|
|
if (sk[0]) strArr.push(`攻击力×${sk[0]/100}倍`);
|
|
|
|
if (sk[1]) strArr.push(`回复力×${sk[1]/100}倍`);
|
|
|
|
if (strArr.length) str += `,所有宠物的${strArr.join(",")}`;
|
|
|
|
if (sk[3]) str += `,受到的伤害减少${sk[3]}%`;
|
|
|
|
break;
|
|
|
|
case 152:
|
|
|
|
str = `将`;
|
|
|
|
if (sk[0] & 1023 == 1023) //parseInt("1111111111",2) == 1023
|
|
|
|
@@ -532,46 +799,134 @@ function parseSkillDescription(skill) |
|
|
|
case 160:
|
|
|
|
str = `${sk[0]}回合内,结算时增加${sk[1]}COMBO`;
|
|
|
|
break;
|
|
|
|
case 164:
|
|
|
|
fullColor = sk.slice(0,4).filter(c=>{return c>0;}); //最多4串珠
|
|
|
|
hasDiffOrbs = fullColor.filter(s=>{return s!= fullColor[0];}).length > 0; //是否存在不同色的珠子
|
|
|
|
strArr = [];
|
|
|
|
if (sk[4] < fullColor.length) //有阶梯的
|
|
|
|
{
|
|
|
|
if (hasDiffOrbs)
|
|
|
|
{//「光光火/光火火」組合的3COMBO時,所有寵物的攻擊力3.5倍;「光光火火」組合的4COMBO或以上時,所有寵物的攻擊力6倍
|
|
|
|
str = `${fullColor.map(a=>{return nb(a, attrsName);}).join("、")}中${sk[4]}串同时攻击时,所有宠物的攻击力和回复力×${sk[5]/100}倍,每多1串+${sk[7]/100}倍,最大${fullColor.length}串时×${(sk[6]+sk[7]*(fullColor.length-sk[4]))/100}倍`;
|
|
|
|
}else
|
|
|
|
{//木寶珠有2COMBO時,所有寵物的攻擊力3倍,每多1COMBO+4倍,最大5COMBO時15倍
|
|
|
|
str = `${nb(fullColor[0], attrsName).join("、")}宝珠有${fullColor.length}串时,所有宠物的攻击力和回复力×${sk[6]/100}倍,每多1串+${sk[7]/100}倍,最大${fullColor.length}串时×${(sk[6]+sk[7]*(fullColor.length-sk[5]))/100}倍`;
|
|
|
|
}
|
|
|
|
if (sk[5]) strArr.push(`攻击力×${sk[5]/100}倍,每多1串+${sk[7]/100}倍,最大${fullColor.length}串时×${(sk[5]+sk[7]*(fullColor.length-sk[4]))/100}倍`);
|
|
|
|
if (sk[6]) strArr.push(`回复力×${sk[6]/100}倍,每多1串+${sk[7]/100}倍,最大${fullColor.length}串时×${(sk[6]+sk[7]*(fullColor.length-sk[4]))/100}倍`);
|
|
|
|
str += strArr.join("、");
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
if (hasDiffOrbs)
|
|
|
|
{//木暗同時攻擊時,所有寵物的攻擊力和回復力2倍
|
|
|
|
str = `${fullColor.map(a=>{return nb(a, attrsName);}).join("、")}同时攻击时,所有宠物的`;
|
|
|
|
}else
|
|
|
|
{//光寶珠有2COMBO或以上時,所有寵物的攻擊力3倍
|
|
|
|
str = `${nb(fullColor[0], attrsName).join("、")}宝珠有${fullColor.length}串或以上时,所有宠物的`;
|
|
|
|
}
|
|
|
|
if (sk[5]) strArr.push(`攻击力×${sk[5]/100}倍`);
|
|
|
|
if (sk[6]) strArr.push(`回复力×${sk[6]/100}倍`);
|
|
|
|
str += strArr.join("、");
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 165:
|
|
|
|
fullColor = nb(sk[0], attrsName);
|
|
|
|
atSameTime = fullColor.length == sk[1];
|
|
|
|
if (sk[0] == 31) //31-11111
|
|
|
|
{ //单纯5色
|
|
|
|
str = '';
|
|
|
|
}else if((sk[0] & 31) == 31)
|
|
|
|
{ //5色加其他色
|
|
|
|
str = `5色+${nb(sk[0] ^ 31, attrsName).join("、")}`;
|
|
|
|
if (!atSameTime) str+="中";
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
str = `${fullColor.join("、")}`;
|
|
|
|
if (!atSameTime) str+="中";
|
|
|
|
}
|
|
|
|
if (!atSameTime) str+=`${sk[1]}种属性以上`;
|
|
|
|
else if(sk[0] == 31) str += `5色`;
|
|
|
|
str += `同时攻击时,所有宠物的`;
|
|
|
|
strArr = [];
|
|
|
|
if (sk[2]==sk[3] && sk[4] == sk[5])
|
|
|
|
{
|
|
|
|
strArr.push(`攻击力和回复力×${sk[2]/100}倍`);
|
|
|
|
if (sk[4]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`每多1种属性+${sk[4]/100}倍`);
|
|
|
|
}
|
|
|
|
if (sk[6]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`最大${sk[6]}种属性时×${((sk[6]-sk[1])*sk[4]+sk[2])/100}倍`);
|
|
|
|
}
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
if (sk[2]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`攻击力×${sk[2]/100}倍`);
|
|
|
|
if (sk[4]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`每多1种属性+${sk[4]/100}倍`);
|
|
|
|
}
|
|
|
|
if (sk[6]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`最大${sk[6]}种属性时×${((sk[6]-sk[1])*sk[4]+sk[2])/100}倍`);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (sk[3]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`回复力×${sk[3]/100}倍`);
|
|
|
|
if (sk[5]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`每多1种属性+${sk[5]/100}倍`);
|
|
|
|
}
|
|
|
|
if (sk[6]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`最大${sk[6]}种属性时×${((sk[6]-sk[1])*sk[5]+sk[3])/100}倍`);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
str += strArr.join(",");
|
|
|
|
break;
|
|
|
|
case 167:
|
|
|
|
//"相連消除5個或以上的火寶珠或光寶珠時攻擊力和回復力4倍,每多1個+1倍,最大7個時6倍;"
|
|
|
|
str = `相连消除${sk[1]}个或以上${nb(sk[0],attrsName).join("或")}宝珠时,所有宠物的`;
|
|
|
|
strArr = [];
|
|
|
|
if (sk[2]==sk[3] && sk[4] == sk[5])
|
|
|
|
{
|
|
|
|
strArr.push(`攻击力和回复力${sk[2]/100}倍`);
|
|
|
|
strArr.push(`攻击力和回复力×${sk[2]/100}倍`);
|
|
|
|
if (sk[4]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`每多1个+${sk[4]/100}倍`);
|
|
|
|
}
|
|
|
|
if (sk[6]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`最大${sk[6]}个时${((sk[6]-sk[1])*sk[4]+sk[2])/100}倍`);
|
|
|
|
strArr.push(`最大${sk[6]}个时×${((sk[6]-sk[1])*sk[4]+sk[2])/100}倍`);
|
|
|
|
}
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
|
|
|
|
if (sk[2]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`攻击力${sk[2]/100}倍`);
|
|
|
|
strArr.push(`攻击力×${sk[2]/100}倍`);
|
|
|
|
if (sk[4]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`每多1个+${sk[4]/100}倍`);
|
|
|
|
}
|
|
|
|
if (sk[6]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`最大${sk[6]}个时${((sk[6]-sk[1])*sk[4]+sk[2])/100}倍`);
|
|
|
|
strArr.push(`最大${sk[6]}个时×${((sk[6]-sk[1])*sk[4]+sk[2])/100}倍`);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (sk[3]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`回复力${sk[3]/100}倍`);
|
|
|
|
strArr.push(`回复力×${sk[3]/100}倍`);
|
|
|
|
if (sk[5]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`每多1个+${sk[5]/100}倍`);
|
|
|
|
}
|
|
|
|
if (sk[6]>0)
|
|
|
|
{
|
|
|
|
strArr.push(`最大${sk[6]}个时${((sk[6]-sk[1])*sk[5]+sk[3])/100}倍`);
|
|
|
|
strArr.push(`最大${sk[6]}个时×${((sk[6]-sk[1])*sk[5]+sk[3])/100}倍`);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -582,6 +937,9 @@ function parseSkillDescription(skill) |
|
|
|
str = `${sk[0]?`${sk[0]}回合内,`:""}根据队伍内觉醒技能${strArr.filter(s=>{return s>0;}).map(s=>{return awokenN(sk[1]);}).join("、")}的数目`;
|
|
|
|
str += `提升所有属性的攻击力,每个觉醒可以提升${sk[7]}%`;
|
|
|
|
break;
|
|
|
|
case 169: //5COMBO或以上時受到的傷害減少25%、攻擊力6倍;
|
|
|
|
str = `${sk[0]}连击或以上时,所有宠物的攻击力×${sk[1]/100}倍,受到的伤害减少${sk[2]}%`;
|
|
|
|
break;
|
|
|
|
case 172:
|
|
|
|
str = `解锁所有宝珠`;
|
|
|
|
break;
|
|
|
|
@@ -590,7 +948,9 @@ function parseSkillDescription(skill) |
|
|
|
var table = [sk[0],sk[1],sk[2],sk[3],sk[4]];
|
|
|
|
str = `以如下形状生成${attrN(sk[5])}宝珠<br>`;
|
|
|
|
str += table.map(r=>{
|
|
|
|
return getBooleanFromBinary(r).map(b=>{return b?"●":"○";}).join("");
|
|
|
|
const orbs = flags(r);
|
|
|
|
const line = Array.from(new Array(6)).map((a,i)=>{return orbs.indexOf(i)>=0?"●":"○";});
|
|
|
|
return line.join("");
|
|
|
|
}).join("<br>");
|
|
|
|
break;
|
|
|
|
case 173:
|
|
|
|
@@ -609,9 +969,15 @@ function parseSkillDescription(skill) |
|
|
|
case 185: //ドラゴンと悪魔タイプの攻撃力が4倍、回復力は2.5倍。\nドロップ操作を3秒延長。
|
|
|
|
str = ``;
|
|
|
|
strArr =[];
|
|
|
|
if (sk[1]) {strArr.push(nb(sk[1],attrsName).join("、") + "属性");}
|
|
|
|
if (sk[2]) {strArr.push(nb(sk[2],typeName).join("、") + "类型");}
|
|
|
|
if (strArr.length) str += strArr.join("和") + "宠物的";
|
|
|
|
if (sk[1] & 31 == 31)
|
|
|
|
{
|
|
|
|
strArr.push("所有");
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
if (sk[1]) {strArr.push(nb(sk[1],attrsName).join("、") + "属性");}
|
|
|
|
if (sk[2]) {strArr.push(nb(sk[2],typeName).join("、") + "类型");}
|
|
|
|
}
|
|
|
|
str += strArr.join("和") + "宠物的";
|
|
|
|
strArr =[];
|
|
|
|
if (sk[3]) {strArr.push(`HP ${sk[3]/100}倍`);}
|
|
|
|
if (sk[4]) {strArr.push(`攻击力 ${sk[4]/100}倍`);}
|
|
|
|
@@ -622,13 +988,19 @@ function parseSkillDescription(skill) |
|
|
|
case 186:
|
|
|
|
str = '<span class="spColor">版面变为【7×6】</span>';
|
|
|
|
strArr =[];
|
|
|
|
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("和") + "宠物的";
|
|
|
|
if (sk[0] & 31 == 31)
|
|
|
|
{
|
|
|
|
strArr.push("所有");
|
|
|
|
}else
|
|
|
|
{
|
|
|
|
if (sk[0]) {strArr.push(nb(sk[0],attrsName).join("、") + "属性");}
|
|
|
|
if (sk[1]) {strArr.push(nb(sk[1],typeName).join("、") + "类型");}
|
|
|
|
}
|
|
|
|
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}倍`);}
|
|
|
|
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:
|
|
|
|
@@ -637,6 +1009,15 @@ function parseSkillDescription(skill) |
|
|
|
case 191:
|
|
|
|
str = `${sk[0]}回合内可以贯穿伤害无效盾`;
|
|
|
|
break;
|
|
|
|
case 192:
|
|
|
|
//相連消除9個或以上的火寶珠時攻擊力4倍、結算增加2COMBO
|
|
|
|
//同時消除光寶珠和水寶珠各4個或以上時攻擊力3倍、結算增加1COMBO;
|
|
|
|
fullColor = nb(sk[0], attrsName);
|
|
|
|
str = fullColor.length>1?"同时":"相连";
|
|
|
|
str += `消除${sk[1]}个或以上的${fullColor.join("、")}宝珠时`;
|
|
|
|
if (sk[2]) str += `,攻击力×${sk[2]/100}倍`;
|
|
|
|
if (sk[3]) str += `,结算时连击数+${sk[3]}`;
|
|
|
|
break;
|
|
|
|
case 195:
|
|
|
|
str = `HP 减少${sk[0]}%`;
|
|
|
|
break;
|
|
|
|
|