活动:神州探秘活动

This commit is contained in:
luying
2022-05-20 16:26:50 +08:00
parent 4ed415207c
commit f4f4eac549
8 changed files with 325 additions and 567 deletions

View File

@@ -9,7 +9,6 @@ import { ActivityRefreshTaskModel } from "../../db/ActivityRefreshTask";
import { ActivityThirtyDaysModel } from "../../db/ActivityThirtyDays";
import { ActivityTreasureHuntTaskModel } from "../../db/ActivityTreasureHuntTask";
import { RoleModel, RoleType } from "../../db/Role";
import { ServerTempModel, ServerTempModelType } from "../../db/ServerTemp";
import { UserTaskRecModel } from "../../db/UserTaskRec";
import { GrowthFundData } from "../../domain/activityField/growthFundField";
import { RefreshTaskData } from "../../domain/activityField/refreshTaskField";
@@ -36,7 +35,6 @@ export class CheckTask {
taskPushMessages: TaskListReturn[] = [];
activityTaskPushMessages = [];
treasureHuntTemp: ServerTempModelType;
tasks: CheckSingleTask[] = [];
constructor(serverId: number, roleId: string) {
@@ -86,19 +84,6 @@ export class CheckTask {
return this.roleCreateTime;
}
// 神州探秘活动
async getTreasureHuntTemp() {
if(this.treasureHuntTemp) return this.treasureHuntTemp;
let tempData: ServerTempModelType = await ServerTempModel.findData(this.serverId);
if (tempData) {
this.treasureHuntTemp = tempData;
return tempData
} else {
return null
}
}
// 推送
public async pushMessage(sid?: string) {
let roleId = this.roleId;
@@ -259,20 +244,17 @@ export class CheckSingleTask {
case ACTIVITY_TYPE.TREASURE_HUNT:
{
// 寻宝奇兵任务
let tempData = await this.parent.getTreasureHuntTemp();
if(tempData && tempData.huntActivityId == activityId) {
let playerData = new TreasureHuntData(activity, roleCreateTime, serverCreateTime);
let taskArray = playerData.tasks.findItemByTaskType(taskType);
for (let task of taskArray) {
let taskUpdateParam = await this.checkIsMatch(task.taskParamArray, async () => {
let data = await ActivityTreasureHuntTaskModel.findDataByCellIndex(serverId, activityId, roleId, tempData.huntRoundIndex, task.cellIndex);
return data?.records ?? [];
});
if(taskUpdateParam) {
let rec = await ActivityTreasureHuntTaskModel.setOrIncTask(serverId, activityId, roleId, tempData.huntRoundIndex, task.cellIndex, taskType, taskUpdateParam);
if(!rec) continue;
this.addActivityTaskPushMessage({ ...task, totalCount: rec.totalCount, activityId });
}
let playerData = new TreasureHuntData(activity, roleCreateTime, serverCreateTime);
let taskArray = playerData.tasks.findItemByTaskType(taskType);
for (let task of taskArray) {
let taskUpdateParam = await this.checkIsMatch(task.taskParamArray, async () => {
let data = await ActivityTreasureHuntTaskModel.findDataByCellIndex(serverId, activityId, roleId, playerData.roundIndex, task.cellIndex);
return data?.records ?? [];
});
if(taskUpdateParam) {
let rec = await ActivityTreasureHuntTaskModel.setOrIncTask(serverId, activityId, roleId, playerData.roundIndex, task.cellIndex, taskType, taskUpdateParam);
if(!rec) continue;
this.addActivityTaskPushMessage({ ...task, totalCount: rec.totalCount, activityId });
}
}
break;