镇念塔调整
This commit is contained in:
@@ -67,6 +67,18 @@ const moment = require('moment');
|
||||
result = x;
|
||||
break;
|
||||
}
|
||||
case 'decimalReward': {
|
||||
let [gid, count] = arr;
|
||||
if(isNaN(gid) || isNaN(count)) throw new Error('data table format wrong');
|
||||
result = { gid: parseInt(gid), count: parseFloat(count) };
|
||||
break;
|
||||
}
|
||||
case 'towerTaskCondition': {
|
||||
let [type, param, cnt] = arr;
|
||||
if(isNaN(type) || isNaN(param)|| isNaN(cnt)) throw new Error('data table format wrong');
|
||||
result = { type: parseInt(type), param: parseInt(param), cnt: parseInt(cnt) };
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
@@ -76,9 +88,14 @@ const moment = require('moment');
|
||||
* 将 | 分隔的字符串解析为数组,如:a|b|c 解析为[a, b, c]
|
||||
* @param str 要解析的字符串
|
||||
*/
|
||||
export function decodeArrayStr(str: string) {
|
||||
if(str == '&') str = '';
|
||||
return str.split('|');
|
||||
export function decodeArrayStr(str: string, splitForm='|') {
|
||||
let last = str.substr(str.length-1, 1);
|
||||
if(last == '&') str = str.substr(0, str.length - 1);
|
||||
if(str == '') {
|
||||
return []
|
||||
} else {
|
||||
return str.split(splitForm);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -188,4 +205,64 @@ export function resResult(status: {code: number, simStr: string}, data = null, c
|
||||
console.log(`normal err, code: ${code}, des: ${customMsg || simStr}`);
|
||||
}
|
||||
return {code, msg: customMsg || simStr, data};
|
||||
}
|
||||
}
|
||||
|
||||
// 消除 js 浮点计算bug
|
||||
|
||||
export const cal = {
|
||||
add: function(a:number, b:number) {
|
||||
var c:number, d:number, e:number;
|
||||
try {
|
||||
c = a.toString().split(".")[1].length;
|
||||
} catch (f) {
|
||||
c = 0;
|
||||
}
|
||||
try {
|
||||
d = b.toString().split(".")[1].length;
|
||||
} catch (f) {
|
||||
d = 0;
|
||||
}
|
||||
e = Math.pow(10, Math.max(c, d));
|
||||
return (this.mul(a, e) + this.mul(b, e)) / e;
|
||||
},
|
||||
sub: function sub(a:number, b:number) {
|
||||
var c:number, d:number, e:number;
|
||||
try {
|
||||
c = a.toString().split(".")[1].length;
|
||||
} catch (f) {
|
||||
c = 0;
|
||||
}
|
||||
try {
|
||||
d = b.toString().split(".")[1].length;
|
||||
} catch (f) {
|
||||
d = 0;
|
||||
}
|
||||
e = Math.pow(10, Math.max(c, d));
|
||||
return (this.mul(a, e) - this.mul(b, e)) / e;
|
||||
},
|
||||
mul: function mul(a:number, b:number) {
|
||||
var c = 0,
|
||||
d = a.toString(),
|
||||
e = b.toString();
|
||||
try {
|
||||
c += d.split(".")[1].length;
|
||||
} catch (f) {}
|
||||
try {
|
||||
c += e.split(".")[1].length;
|
||||
} catch (f) {}
|
||||
return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);
|
||||
},
|
||||
div: function div(a:number, b:number) {
|
||||
var c:number, d:number, e = 0,
|
||||
f = 0;
|
||||
try {
|
||||
e = a.toString().split(".")[1].length;
|
||||
} catch (g) {}
|
||||
try {
|
||||
f = b.toString().split(".")[1].length;
|
||||
} catch (g) {}
|
||||
c = Number(a.toString().replace(".", ""));
|
||||
d = Number(b.toString().replace(".", ""));
|
||||
return this.mul(c / d, Math.pow(10, f - e));
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user