镇念塔调整
This commit is contained in:
@@ -6,7 +6,7 @@ const wars = ['dic_zyz_gk_main', 'dic_zyz_gk_mainElite', 'dic_zyz_gk_daily', 'di
|
||||
const allWarInfos = new Map<number, any>();
|
||||
const towerInfos = new Map<number, any>();
|
||||
const towerTaskInfos = new Map<number, any>();
|
||||
const towerTasksByQuality = new Map<number, Array<number>>();
|
||||
const towerTasksByFloor = new Map<number, Array<number>>();
|
||||
const heroInfos = new Map<number, any>();
|
||||
const jobInfos = new Map<number, any>();
|
||||
const levelInfos = new Map<number, {sum: number, cur: number}>();
|
||||
@@ -28,8 +28,8 @@ function parseTowerData() {
|
||||
const towerFile = 'dic_zyz_tower';
|
||||
const towerData = gamedata['jsons'][towerFile] || [];
|
||||
towerData.forEach(elem => {
|
||||
if (elem.lv) {
|
||||
towerInfos.set(elem.lv, elem);
|
||||
if (elem.towerFloor) {
|
||||
towerInfos.set(elem.towerFloor, elem);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -40,9 +40,9 @@ function parseTowerTaskData() {
|
||||
towerTaskData.forEach(elem => {
|
||||
if (elem && elem.taskId) {
|
||||
towerTaskInfos.set(elem.taskId, elem);
|
||||
let tasks = towerTasksByQuality.get(elem.quality) || [];
|
||||
let tasks = towerTasksByFloor.get(elem.suitFloor) || [];
|
||||
tasks.push(elem.taskId);
|
||||
towerTasksByQuality.set(elem.quality, tasks);
|
||||
towerTasksByFloor.set(elem.suitFloor, tasks);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -153,8 +153,8 @@ export function getTaskById(tid: number) {
|
||||
return taskInfo;
|
||||
}
|
||||
|
||||
export function getTaskIdByQuality(quality: number) {
|
||||
const taskIds = towerTasksByQuality.get(quality);
|
||||
export function getTaskIdByFloor(floor: number) {
|
||||
const taskIds = towerTasksByFloor.get(floor);
|
||||
return taskIds;
|
||||
}
|
||||
|
||||
|
||||
@@ -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