任务:今日挑战区分累积型和去做型

This commit is contained in:
luying
2022-01-17 18:20:37 +08:00
parent 683dfeda81
commit 64b6d4706e
6 changed files with 194 additions and 101 deletions

View File

@@ -1,6 +1,6 @@
import { gameData } from './data';
import { DicTask } from './dictionary/DicTask';
import { TASK_TYPE, ABI_STAGE, WAR_TYPE, GUILD_JOB } from '../consts';
import { TASK_TYPE, ABI_STAGE, WAR_TYPE, GUILD_JOB, TASK_SUM_TYPE } from '../consts';
import { UserTaskRecModel, UserTaskRecType } from '../db/UserTaskRec'
import { RoleType, RoleModel } from '../db/Role';
import { TaskParam, TaskListReturn } from '../domain/roleField/task';
@@ -492,6 +492,7 @@ function checkRecResult(rec: UserTaskRecType, id: number) {
*/
export async function accomplishTask(serverId: number, roleId: string, taskType: TASK_TYPE, count: number, parma?: any, activities?: ActivityInRemote[]) {
// console.log('accomplishTask', roleId, taskType, count, JSON.stringify(parma))
let dicTaskType = gameData.taskDescByType.get(taskType);
let pushMessage = [];
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
let findActivitiesByTypes = async (types: number[]) => {
@@ -520,7 +521,7 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
let playerData = new SevenDaysData(activity, createTime)
//成长活动统计
let growthActivity = playerData.growth;
let growthTaskArray = growthActivity.findTaskByType(taskType);
let growthTaskArray = growthActivity.findTaskByType(taskType); // 所有任务
for (let task of growthTaskArray) {
let taskRecord = await ActivityGrowthModel.findDataByCellIndex(serverId, activity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType);
let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null;
@@ -547,8 +548,12 @@ export async function accomplishTask(serverId: number, roleId: string, taskType:
}
//今日挑战统计
let dailyChallengeActivity = playerData.dailyChallenge;
let dailyChallengeTaskArray = dailyChallengeActivity.findTaskByType(taskType, playerData.today());
let dailyChallengeTaskArray = dailyChallengeActivity.findTaskByType(taskType);
for (let task of dailyChallengeTaskArray) {
if(dicTaskType.sumType == TASK_SUM_TYPE.DO && task.dayIndex != playerData.today()) {
continue;
}
let taskRecord = await ActivityDailyChallengesModel.findDataByCellIndex(serverId, activity.activityId, roleId, task.dayIndex, task.cellIndex, task.taskType)
let recordData = taskRecord && taskRecord.data ? JSON.parse(taskRecord.data) : null
let { addCount, record } = isComplete(roleId, task.taskType, task.taskParam, count, activity.activityId, parma, recordData);