diff --git a/languages/en.js b/languages/en.js index 1418ff10..74c87921 100644 --- a/languages/en.js +++ b/languages/en.js @@ -1,31 +1,3 @@ //const _localTranslating = {}; //deepMerge(localTranslating, _localTranslating); localisation(localTranslating); - -//大数字缩短长度 -Number.prototype.bigNumberToString = function() { - const negative = this < 0; - - let numTemp = negative ? Math.abs(this) : this.valueOf(); - if (!numTemp) return "0"; - if (numTemp == Infinity) return "Infinity"; - const grouping = 1e3; - const unit = ['', 'K', 'M', 'G', 'T', 'P']; - const numParts = []; - do { - numParts.push(numTemp % grouping); - numTemp = Math.floor(numTemp / grouping); - } while (numTemp > 0 && numParts.length < (unit.length - 1)) - if (numTemp > 0) { - numParts.push(numTemp); - } - let numPartsStr = numParts.map((num, idx) => { - if (num > 0) { - return num + unit[idx]; - } else - return ""; - }); - - let outStr = numPartsStr.filter(Boolean).reverse().join(" "); - return (negative ? "-" : "") + outStr; -} \ No newline at end of file diff --git a/languages/ja.js b/languages/ja.js index eedfe766..acf9b397 100644 --- a/languages/ja.js +++ b/languages/ja.js @@ -56,32 +56,4 @@ deepMerge(localTranslating, _localTranslating); localisation(localTranslating); //大数字缩短长度 -Number.prototype.bigNumberToString = function() -{ - let numTemp = this.valueOf(); - if (!numTemp) return "0"; - const grouping = Math.pow(10, 4); - const unit = ['','万','億','兆','京','垓']; - const numParts = []; - do{ - numParts.push(numTemp % grouping); - numTemp = Math.floor(numTemp / grouping); - }while(numTemp>0 && numParts.length<(unit.length-1)) - if (numTemp>0) - { - numParts.push(numTemp); - } - let numPartsStr = numParts.map((num,idx)=>{ - if (num > 0) - { - return (num < 1e3 ? "と" : "") + num.toLocaleString() + unit[idx]; - }else - return "と"; - }); - - numPartsStr.reverse(); //反向 - let outStr = numPartsStr.join(""); - outStr = outStr.replace(/(^と+|と+$)/g,''); //去除开头的零 - outStr = outStr.replace(/と{2,}/g,'と'); //去除多个连续的零 - return outStr; -} \ No newline at end of file +Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', '万', '億', '兆', '京', '垓', '𥝱', '穣', '溝', '澗', '正', '載', '極', '恒河沙', '阿僧祇', '那由他', '不可思議', '無量大数'], 4); diff --git a/languages/ko.js b/languages/ko.js index 888013d3..03251069 100644 --- a/languages/ko.js +++ b/languages/ko.js @@ -56,32 +56,4 @@ deepMerge(localTranslating, _localTranslating); localisation(localTranslating); //大数字缩短长度 -Number.prototype.bigNumberToString = function() -{ - let numTemp = this.valueOf(); - if (!numTemp) return "0"; - const grouping = Math.pow(10, 4); - const unit = ['','만','억','조']; - const numParts = []; - do{ - numParts.push(numTemp % grouping); - numTemp = Math.floor(numTemp / grouping); - }while(numTemp>0 && numParts.length<(unit.length-1)) - if (numTemp>0) - { - numParts.push(numTemp); - } - let numPartsStr = numParts.map((num,idx)=>{ - if (num > 0) - { - return (num < 1e3 ? "と" : "") + num.toLocaleString() + unit[idx]; - }else - return "と"; - }); - - numPartsStr.reverse(); //反向 - let outStr = numPartsStr.join(""); - outStr = outStr.replace(/(^と+|と+$)/g,''); //去除开头的零 - outStr = outStr.replace(/と{2,}/g,'と'); //去除多个连续的零 - return outStr; -} \ No newline at end of file +Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', '만', '억', '조', '경', '해', '자', '양', '구', '간', '정', '재', '극', '항하사', '아승기', '나유타', '불가사의', '무량대수'], 4); diff --git a/languages/zh-TW.js b/languages/zh-TW.js index 14fb432e..65a118ee 100644 --- a/languages/zh-TW.js +++ b/languages/zh-TW.js @@ -446,32 +446,4 @@ deepMerge(localTranslating, _localTranslating); localisation(localTranslating); //大數字縮短長度 -Number.prototype.bigNumberToString = function() { - const negative = this < 0; - - let numTemp = negative ? Math.abs(this) : this.valueOf(); - if (!numTemp) return "0"; - if (numTemp == Infinity) return "無窮大"; - const grouping = 1e4; - const unit = ['','萬','億','兆','京','垓']; - const numParts = []; - do { - numParts.push(numTemp % grouping); - numTemp = Math.floor(numTemp / grouping); - } while (numTemp > 0 && numParts.length < (unit.length - 1)) - if (numTemp > 0) { - numParts.push(numTemp); - } - let numPartsStr = numParts.map((num, idx) => { - if (num > 0) { - return (num < 1e3 ? "零" : "") + num + unit[idx]; - } else - return "零"; - }); - - numPartsStr.reverse(); //反向 - let outStr = numPartsStr.join(""); - outStr = outStr.replace(/(^零+|零+$)/g, ''); //去除开头的零 - outStr = outStr.replace(/零{2,}/g, '零'); //去除多个连续的零 - return (negative ? "-" : "") + outStr; -} \ No newline at end of file +Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', '萬', '億', '兆', '京', '垓', '秭', '穰', '溝', '澗', '正', '載'], 4); diff --git a/languages/zh.js b/languages/zh.js index 77c023ff..e52f5b40 100644 --- a/languages/zh.js +++ b/languages/zh.js @@ -446,32 +446,4 @@ deepMerge(localTranslating, _localTranslating); localisation(localTranslating); //大数字缩短长度 -Number.prototype.bigNumberToString = function() { - const negative = this < 0; - - let numTemp = negative ? Math.abs(this) : this.valueOf(); - if (!numTemp) return "0"; - if (numTemp == Infinity) return "无穷大"; - const grouping = 1e4; - const unit = ['', '万', '亿', '兆', '京', '垓']; - const numParts = []; - do { - numParts.push(numTemp % grouping); - numTemp = Math.floor(numTemp / grouping); - } while (numTemp > 0 && numParts.length < (unit.length - 1)) - if (numTemp > 0) { - numParts.push(numTemp); - } - let numPartsStr = numParts.map((num, idx) => { - if (num > 0) { - return (num < 1e3 ? "零" : "") + num + unit[idx]; - } else - return "零"; - }); - - numPartsStr.reverse(); //反向 - let outStr = numPartsStr.join(""); - outStr = outStr.replace(/(^零+|零+$)/g, ''); //去除开头的零 - outStr = outStr.replace(/零{2,}/g, '零'); //去除多个连续的零 - return (negative ? "-" : "") + outStr; -} \ No newline at end of file +Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', '万', '亿', '万亿', '亿亿', '万亿亿', '亿亿亿', '万亿亿亿', '亿亿亿亿'], 4); diff --git a/script-universal_function.js b/script-universal_function.js index 8222c4e6..be027d51 100644 --- a/script-universal_function.js +++ b/script-universal_function.js @@ -176,8 +176,38 @@ Uint8Array.prototype.toHex = function() { return [...this].map(n=>n.toString(16).padStart(2,'0')).join(''); } -//大数字缩短长度,默认返回本地定义字符串 -Number.prototype.bigNumberToString = Number.prototype.toLocaleString; +//大数字缩短长度 +function BigNumberToStringLocalise(separators, splitDigits = 3 ) { + + return function(){ + if (splitDigits < 1) throw new Error('数字分割数量至少是1位'); + if (Number.isNaN(this)) return 0..bigNumberToString(); + if (this === Infinity || this === -Infinity) return this.toLocaleString(); + const grouping = 10 ** splitDigits; + const numParts = []; + let numTemp = Math.abs(this); + do { + numParts.push(numTemp % grouping); + numTemp = Math.floor(numTemp / grouping); + } while (numTemp > 0 && numParts.length < (separators.length - 1)) + if (numTemp > 0) { + numParts.push(numTemp); + } + let numPartsStr = numParts.map((num, idx) => { + if (num > 0) { + return num + separators[idx]; + } else + return ''; + }); + + numPartsStr.reverse(); //反向 + let outStr = numPartsStr.join(''); + const negative = this < 0; + return (negative ? "-" : "") + outStr; + } +} +Number.prototype.bigNumberToString = BigNumberToStringLocalise(['', 'K ', 'M ', 'G ', 'T ', 'P ', 'E ', 'Z ', 'Y ', 'R ', 'Q '], 3); + //最多保留N位小数,不留0 Number.prototype.keepCounts = function(decimalDigits = 2, plusSign = false) { @@ -1105,8 +1135,7 @@ function countTeamHp(team, leader1id, leader2id, solo, noAwoken = false) { //演示用代码 //console.log("%s 第1次倍率血量:%s,第2次倍率血量:%s",Cards[m.id].otLangName["chs"],hp1,hp2); - - console.debug(hp, mulHP); + return Math.round(mulHP); }); diff --git a/script.js b/script.js index 050926b3..db8fe250 100644 --- a/script.js +++ b/script.js @@ -6179,7 +6179,6 @@ function refreshTeamTotalHP(totalDom, team, teamIdx) { badgeHPScale = 1.10; } - console.debug(teamHPArr, tHP, teamHPAwoken, badgeHPScale); tHP = Math.round(tHP * (1 + 0.05 * teamHPAwoken) * badgeHPScale); tHPNoAwoken = Math.round(tHPNoAwoken * badgeHPScale);