任务:埋点30/70
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// 镇念塔表
|
||||
import { decodeArrayListStr, readJsonFile } from '../util'
|
||||
import { decodeArrayListStr, readJsonFile, parseNumberList } from '../util'
|
||||
import { FILENAME } from '../../consts';
|
||||
|
||||
export interface DicSuit {
|
||||
@@ -11,7 +11,7 @@ export interface DicSuit {
|
||||
readonly totalCount: number;
|
||||
// 套装效果
|
||||
readonly effect: Array<{ count: number, seid: number }>;
|
||||
readonly tireInfo: Map<number,number>;
|
||||
readonly tireInfo: Array<number>;
|
||||
}
|
||||
|
||||
const str = readJsonFile(FILENAME.DIC_SUIT);
|
||||
@@ -21,7 +21,7 @@ export const dicSuit = new Map<number, DicSuit>();
|
||||
|
||||
arr.forEach(o => {
|
||||
o.effect = parseSuitEffect(o.effect);
|
||||
o.tireInfo = parseTireInfo(o.tireInfo);
|
||||
o.tireInfo = parseNumberList(o.tireInfo);
|
||||
dicSuit.set(o.id, o);
|
||||
});
|
||||
arr = undefined;
|
||||
@@ -37,13 +37,4 @@ function parseSuitEffect(str: string) {
|
||||
result.push({ count: parseInt(count), seid: parseFloat(seid) });
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
function parseTireInfo(str: string) {
|
||||
let result = new Map<number,number>();
|
||||
let arrs = str.split('&');
|
||||
for (let arr of arrs) {
|
||||
result.set(parseInt(arr), 1);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
132
shared/pubUtils/dictionary/DicTask.ts
Normal file
132
shared/pubUtils/dictionary/DicTask.ts
Normal file
@@ -0,0 +1,132 @@
|
||||
// 任务
|
||||
import { RewardInter } from '../interface';
|
||||
import { readJsonFile, parseNumberList, parseGoodStr } from '../util';
|
||||
import { FILENAME, TASK_FUN_TYPE} from '../../consts';
|
||||
const _ = require('lodash');
|
||||
|
||||
type KeysEnum<T> = { [P in keyof Required<T>]: true };
|
||||
|
||||
interface DicTaskBase {
|
||||
// id
|
||||
readonly id: number;
|
||||
// 任务类型
|
||||
readonly taskType: number;
|
||||
// 类型下面的分组
|
||||
readonly group: number;
|
||||
// 任务参数
|
||||
readonly taskParam: number[];
|
||||
// 条件
|
||||
readonly condition: number;
|
||||
}
|
||||
|
||||
const DicTaskKeys: KeysEnum<DicTaskBase> = {
|
||||
id: true,
|
||||
taskType: true,
|
||||
group: true,
|
||||
taskParam: true,
|
||||
condition: true
|
||||
};
|
||||
|
||||
// 主线任务
|
||||
export interface DicMainTask extends DicTaskBase {
|
||||
// 奖励
|
||||
readonly taskReward: RewardInter[];
|
||||
// 任务阶段
|
||||
readonly taskStage: number;
|
||||
}
|
||||
|
||||
const DicMainTaskKeys: KeysEnum<DicMainTask> = {
|
||||
id: true,
|
||||
taskType: true,
|
||||
group: true,
|
||||
taskParam: true,
|
||||
condition: true,
|
||||
taskStage: true,
|
||||
taskReward: true
|
||||
};
|
||||
|
||||
// 每日任务
|
||||
export interface DicDailyTask extends DicTaskBase {
|
||||
// 奖励
|
||||
readonly taskReward: RewardInter[];
|
||||
// 活跃
|
||||
readonly point: number;
|
||||
// 经验基数
|
||||
readonly exp: number;
|
||||
}
|
||||
|
||||
const DicDailyTaskKeys: KeysEnum<DicDailyTask> = {
|
||||
id: true,
|
||||
taskType: true,
|
||||
group: true,
|
||||
taskParam: true,
|
||||
condition: true,
|
||||
taskReward: true,
|
||||
point: true,
|
||||
exp: true
|
||||
};
|
||||
|
||||
// 成就
|
||||
export interface DicAchievement extends DicTaskBase {
|
||||
// 奖励
|
||||
readonly taskReward: RewardInter[];
|
||||
// 活跃
|
||||
readonly point: number;
|
||||
}
|
||||
|
||||
const DicAchievementKeys: KeysEnum<DicAchievement> = {
|
||||
id: true,
|
||||
taskType: true,
|
||||
group: true,
|
||||
taskParam: true,
|
||||
condition: true,
|
||||
taskReward: true,
|
||||
point: true
|
||||
};
|
||||
|
||||
export type DicTask = DicTaskBase & { type: number };
|
||||
|
||||
export const dicMainTask = new Map<number, DicMainTask>(); // 主线任务
|
||||
export const dicDailyTask = new Map<number, DicDailyTask>(); // 每日任务
|
||||
export const dicAchievement = new Map<number, DicAchievement>(); // 成就
|
||||
|
||||
export const dicTaskType = new Map<number, DicTask[]>();
|
||||
|
||||
const mainTask = readJsonFile(FILENAME.DIC_MAIN_TASK);
|
||||
let arrMainTask = JSON.parse(mainTask);
|
||||
arrMainTask.forEach(o => {
|
||||
o.taskParam = parseNumberList(o.taskParam);
|
||||
o.taskReward = parseGoodStr(o.taskReward);
|
||||
dicMainTask.set(o.id, _.pick(o, Object.keys(DicMainTaskKeys)));
|
||||
pushDicTaskType(o.taskType, TASK_FUN_TYPE.MAIN, o);
|
||||
});
|
||||
arrMainTask = undefined;
|
||||
|
||||
const dailyTask = readJsonFile(FILENAME.DIC_DAILY_TASK);
|
||||
let arrDailyTask = JSON.parse(dailyTask);
|
||||
arrDailyTask.forEach(o => {
|
||||
o.taskParam = parseNumberList(o.taskParam);
|
||||
o.taskReward = parseGoodStr(o.taskReward);
|
||||
dicDailyTask.set(o.id, _.pick(o, Object.keys(DicDailyTaskKeys)));
|
||||
pushDicTaskType(o.taskType, TASK_FUN_TYPE.DAILY, o);
|
||||
});
|
||||
arrDailyTask = undefined;
|
||||
|
||||
const achievement = readJsonFile(FILENAME.DIC_ACHIEVEMENT);
|
||||
let arrAchievement = JSON.parse(achievement);
|
||||
arrAchievement.forEach(o => {
|
||||
o.taskParam = parseNumberList(o.taskParam);
|
||||
o.taskReward = parseGoodStr(o.taskReward);
|
||||
dicAchievement.set(o.id, _.pick(o, Object.keys(DicAchievementKeys)));
|
||||
pushDicTaskType(o.taskType, TASK_FUN_TYPE.ACHIEVEMENT, o);
|
||||
});
|
||||
arrAchievement = undefined;
|
||||
|
||||
function pushDicTaskType(taskType: number, type: number, o: any) {
|
||||
if(!dicTaskType.has(taskType)) {
|
||||
dicTaskType.set(taskType, new Array<DicTask>());
|
||||
}
|
||||
let newObj = _.pick(o, Object.keys(DicTaskKeys));
|
||||
newObj.type = type;
|
||||
dicTaskType.get(taskType).push(newObj)
|
||||
}
|
||||
Reference in New Issue
Block a user