From 624ba24f2f30d11dbd1b020ed00d31969bc3c745 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=AB=E8=B0=B7=E5=89=91=E4=BB=99?= Date: Wed, 22 Jan 2020 13:58:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=83=A8=E5=88=86=E8=AF=AD?= =?UTF-8?q?=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- languages/zh-CN.js | 75 ++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 43 deletions(-) diff --git a/languages/zh-CN.js b/languages/zh-CN.js index 842fe22f..e770a6f1 100644 --- a/languages/zh-CN.js +++ b/languages/zh-CN.js @@ -97,6 +97,24 @@ function parseSkillDescription(skill) } return outArr.join("和"); } + function getOrbsAttrString(orbFlag) + { + let outStr = ``; + if (orbFlag == 1023) //1023-1111111111 + { //单纯5色 + outStr += '任何'; + }else if (orbFlag == 31) //31-11111 + { //单纯5色 + outStr += '5色'; + }else if((orbFlag & 31) == 31) + { //5色加其他色 + outStr += `5色+${nb(orbFlag ^ 31, attrsName).join("、")}`; + }else + { + outStr += `${nb(orbFlag, attrsName).join("、")}`; + } + return outStr; + } function stats(value, statTypes) { return [ @@ -477,7 +495,7 @@ function parseSkillDescription(skill) str = `所有宠物的${getFixedHpAtkRcvString({hp:sk[0]})},${typeN(sk[1])}类型宠物的攻击力×${sk[2]/100}倍`; break; case 109: - str = `相连消除${sk[1]}个或以上${nb(sk[0],attrsName).join("或")}宝珠时`; + str = `相连消除${sk[1]}个或以上${getOrbsAttrString(sk[0])}宝珠时`; if (sk[2]) str += `,所有宠物的${getFixedHpAtkRcvString({atk:sk[2]})}`; break; case 110: @@ -516,7 +534,7 @@ function parseSkillDescription(skill) str = strArr.join(","); break; case 119: //相連消除4個的水寶珠時,所有寵物的攻擊力2.5倍,每多1個+0.5倍,最大5個時3倍 - str = `相连消除${sk[1]}个或以上${nb(sk[0],attrsName).join("或")}宝珠时,所有宠物的攻击力${sk[2]/100}倍`; + str = `相连消除${sk[1]}个或以上${getOrbsAttrString(sk[0])}宝珠时,所有宠物的攻击力${sk[2]/100}倍`; if (sk[3]>0) { str += `,每多1个+${sk[3]/100}倍`; @@ -784,40 +802,26 @@ function parseSkillDescription(skill) str = `进入地下城时为队长的话,获得的经验${sk[0]/100}倍`; break; case 149: //相連消除4個回復寶珠時,所有寵物的回復力2.5倍; - str = `相连消除4粒回复宝珠时,所有宠物的${getFixedHpAtkRcvString({rcv:sk[0]})}`; + str = `相连消除4粒${getOrbsAttrString(1<<5)}宝珠时,所有宠物的${getFixedHpAtkRcvString({rcv:sk[0]})}`; break; case 150: //相連消除5粒寶珠,而當中包含至少1粒強化寶珠時,該屬性的攻擊力1.5倍 str = `相连消除5粒宝珠,而当中包含至少1粒强化宝珠时,该属性的${getFixedHpAtkRcvString({atk:sk[1]})}`; 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(",")}`; + str = `以十字形式消除5个${getOrbsAttrString(1<<5)}宝珠时`; + if (sk[0] || sk[1]) str += `,所有宠物的${getFixedHpAtkRcvString({atk:sk[0],rcv:sk[1]})}`; if (sk[2]) str += `,受到的伤害减少${sk[2]}%`; break; case 152: - 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 += `宝珠锁定`; + str = `将${getOrbsAttrString(sk[0])}宝珠锁定`; if (sk[1]!=42 && sk[1]!=99) str += `,还有未知 参数[1]:${sk[1]}`; break; case 153: str = `敌人全体变为${attrN(sk[0])}属性。(${sk[1]?"不":""}受防护盾的影响)`; break; case 154: - str = `${nb(sk[0],attrsName).join("、")}珠变为${nb(sk[1],attrsName).join("、")}`; + str = `${getOrbsAttrString(sk[0])}宝珠变为${nb(sk[1],attrsName).join("、")}`; break; case 155: str = `协力时${getAttrTypeString(flags(sk[0]),flags(sk[1]))}宠物的${getFixedHpAtkRcvString({hp:sk[2],atk:sk[3],rcv:sk[4]})}`; @@ -857,7 +861,7 @@ function parseSkillDescription(skill) break; case 159: //"相連消除5個或以上的火寶珠或光寶珠時攻擊力和回復力4倍,每多1個+1倍,最大7個時6倍;" - str = `相连消除${sk[1]}个或以上${nb(sk[0],attrsName).join("或")}宝珠时,所有宠物的`; + str = `相连消除${sk[1]}个或以上${getOrbsAttrString(sk[0])}宝珠时,所有宠物的`; strArr = []; if (sk[2]>0) { @@ -1022,7 +1026,7 @@ function parseSkillDescription(skill) break; case 167: //"相連消除5個或以上的火寶珠或光寶珠時攻擊力和回復力4倍,每多1個+1倍,最大7個時6倍;" - str = `相连消除${sk[1]}个或以上${nb(sk[0],attrsName).join("或")}宝珠时,所有宠物的`; + str = `相连消除${sk[1]}个或以上${getOrbsAttrString(sk[0])}宝珠时,所有宠物的`; strArr = []; if (sk[2]==sk[3] && sk[4] == sk[5]) { @@ -1175,8 +1179,7 @@ function parseSkillDescription(skill) str = `${sk[0]}回合内,${sk[1]}%概率掉落强化宝珠`; break; case 182: - //"相連消除5個或以上的火寶珠或光寶珠時攻擊力和回復力4倍,每多1個+1倍,最大7個時6倍;" - str = `相连消除${sk[1]}个或以上${nb(sk[0],attrsName).join("或")}宝珠时`; + str = `相连消除${sk[1]}个或以上${getOrbsAttrString(flags(sk[0]))}宝珠时`; if (sk[2]) str += `,所有宠物的${getFixedHpAtkRcvString({atk:sk[2]})}`; if (sk[3]) str += `,受到的伤害减少${sk[3]}%`; break; @@ -1218,27 +1221,13 @@ function parseSkillDescription(skill) //同時消除光寶珠和水寶珠各4個或以上時攻擊力3倍、結算增加1COMBO; fullColor = nb(sk[0], attrsName); str = fullColor.length>1?"同时":"相连"; - str += `消除${sk[1]}个或以上的${fullColor.join("、")}宝珠时`; + str += `消除${sk[1]}个或以上的${getOrbsAttrString(sk[0])}宝珠时`; if (sk[2]) str += `,攻击力×${sk[2]/100}倍`; if (sk[3]) str += `,结算时连击数+${sk[3]}`; break; case 193: fullColor = nb(sk[0], attrsName); - str = `以L字形消除5个`; - if (sk[0] == 1023) //1023-1111111111 - { //单纯5色 - str += '任何'; - }else if (sk[0] == 31) //31-11111 - { //单纯5色 - str += '5色'; - }else if((sk[0] & 31) == 31) - { //5色加其他色 - str += `5色+${nb(sk[0] ^ 31, attrsName).join("、")}`; - }else - { - str += `${fullColor.join("、")}`; - } - str+=`宝珠时`; + str = `以L字形消除5个${getOrbsAttrString(sk[0])}宝珠时`; if (sk[1] || sk[2]) str+=getFixedHpAtkRcvString({atk:sk[1],rcv:sk[2]}); if (sk[3]) str+=`,受到的伤害减少${sk[3]}%`; break; @@ -1270,7 +1259,7 @@ function parseSkillDescription(skill) str = `无法消除宝珠状态减少${sk[0]}回合`; break; case 197: //消除毒/猛毒宝珠时不会受到毒伤害 - str = `消除${getAttrTypeString([7,8])}宝珠时不会受到毒伤害`; + str = `消除${getOrbsAttrString(1<<7|1<<8)}宝珠时不会受到毒伤害`; break; case 198: //以回復寶珠回復40000HP或以上時,受到的傷害減少50% @@ -1299,7 +1288,7 @@ function parseSkillDescription(skill) str += `同时攻击时,追加${sk[2]}点固定伤害`; break; case 200: - str = `相连消除${sk[1]}个或以上${nb(sk[0],attrsName).join("或")}宝珠时,追加${sk[2]}点固定伤害`; + str = `相连消除${sk[1]}个或以上${getOrbsAttrString(sk[0])}宝珠时,追加${sk[2]}点固定伤害`; break; case 201: fullColor = sk.slice(0,4).filter(c=>{return c>0;}); //最多4串珠