pvp:添加PVP任务

This commit is contained in:
luying
2021-10-29 16:36:23 +08:00
parent 2cf5895c52
commit 0d0855d312
9 changed files with 120 additions and 9 deletions
+2 -1
View File
@@ -73,7 +73,7 @@ import { dicShop, dicShopItem, loadShop } from "./dictionary/DicShop";
import { dicShopList, loadShopList } from "./dictionary/DicShopList";
import { dicRank, loadRank } from "./dictionary/DicRank";
import { dicRankReward, loadRankReward } from "./dictionary/DicRankReward";
import { dicTaskType, taskMap, dicMainTask, dicDailyTask, dicAchievement, loadTask } from "./dictionary/DicTask";
import { dicTaskType, taskMap, dicMainTask, dicDailyTask, dicAchievement, loadTask, dicPvpDailyTask } from "./dictionary/DicTask";
import { dicMainTaskStage, loadMainTaskStage } from "./dictionary/DicMainTaskStage";
import { dicTaskBox, loadTaskBox } from './dictionary/DicTaskBox';
import { dicGacha, loadGacha } from "./dictionary/DicGacha";
@@ -206,6 +206,7 @@ export const gameData = {
mainTask: dicMainTask,
dailyTask: dicDailyTask,
achievement: dicAchievement,
pvpDailyTask: dicPvpDailyTask,
mainTaskStage: dicMainTaskStage,
taskBox: dicTaskBox,
gacha: dicGacha,
+28 -1
View File
@@ -87,21 +87,40 @@ const DicAchievementKeys: KeysEnum<DicAchievement> = {
point: true
};
// pvp任务
export interface DicPvpDailyTask extends DicTaskBase {
// 奖励
readonly taskReward: RewardInter[];
}
const DicPvpDailyTaskKeys: KeysEnum<DicPvpDailyTask> = {
id: true,
taskType: true,
group: true,
taskParam: true,
condition: true,
taskReward: 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 taskMap = new Map<number, Map<number, DicMainTask | DicDailyTask | DicAchievement>>();
export const dicPvpDailyTask = new Map<number, DicDailyTask>(); // 成就
export const taskMap = new Map<number, Map<number, DicMainTask | DicDailyTask | DicAchievement | DicDailyTask>>();
taskMap.set(TASK_FUN_TYPE.MAIN, dicMainTask);
taskMap.set(TASK_FUN_TYPE.DAILY, dicDailyTask);
taskMap.set(TASK_FUN_TYPE.ACHIEVEMENT, dicAchievement);
taskMap.set(TASK_FUN_TYPE.PVP, dicPvpDailyTask);
export const dicTaskType = new Map<number, DicTask[]>();
export function loadTask() {
dicMainTask.clear();
dicDailyTask.clear();
dicAchievement.clear();
dicPvpDailyTask.clear();
const arrMainTask = readFileAndParse(FILENAME.DIC_MAIN_TASK);
arrMainTask.forEach(o => {
@@ -128,6 +147,14 @@ export function loadTask() {
pushDicTaskType(o.taskType, TASK_FUN_TYPE.ACHIEVEMENT, o);
});
const arrPvpDailyTask = readFileAndParse(FILENAME.DIC_PVP_DAILY_TASK);
arrPvpDailyTask.forEach(o => {
o.taskParam = parseNumberList(o.taskParam);
o.taskReward = parseGoodStr(o.taskReward);
o.group = 1;
dicPvpDailyTask.set(o.id, _.pick(o, Object.keys(DicPvpDailyTaskKeys)));
pushDicTaskType(o.taskType, TASK_FUN_TYPE.PVP, o);
});
}
function pushDicTaskType(taskType: number, type: number, o: any) {