From a5221144ab26cabb5239c4de97a5ae105403a939 Mon Sep 17 00:00:00 2001 From: CounterFire2023 <136581895+CounterFire2023@users.noreply.github.com> Date: Fri, 12 Apr 2024 17:55:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=89=80=E6=9C=89=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E4=BB=BB=E5=8A=A1,=20=E5=A5=96=E5=8A=B1=E9=A2=9D?= =?UTF-8?q?=E5=A4=96=E7=9A=84ticket?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/Constants.ts | 2 ++ src/controllers/tasks.controller.ts | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/common/Constants.ts b/src/common/Constants.ts index 1dea96f..67f4af7 100644 --- a/src/common/Constants.ts +++ b/src/common/Constants.ts @@ -32,6 +32,8 @@ export const MAX_ENHANCE_COUNT_BASE = 1 export const MAX_ENHANCE_COUNT_ADV = 10 // 宝箱助力增加的分数 export const ENHANCE_CHEST_GIFT = 10 +// 完成所有基础任务额外奖励的ticket +export const BASE_TASK_TICKET = 3 // 低保步数 export const RESET_STEP = 2 diff --git a/src/controllers/tasks.controller.ts b/src/controllers/tasks.controller.ts index ee15d7b..24b00b9 100644 --- a/src/controllers/tasks.controller.ts +++ b/src/controllers/tasks.controller.ts @@ -4,6 +4,7 @@ import { TaskStatus, TaskStatusEnum } from 'models/ActivityUser' import { join } from 'path' import { formatDate } from 'utils/utcdate.util' import { GeneralScription } from 'models/chain/GeneralScription' +import { BASE_TASK_TICKET } from 'common/Constants' const fs = require('fs') const prod = process.env.NODE_ENV === 'production' @@ -206,6 +207,18 @@ export default class TasksController extends BaseController { const Task = require('../tasks/' + currentTask.task) const taskInstance = new Task.default({ user, activity }) const { score } = await taskInstance.claimReward(currentTask) - return { status: currentTask.status, score, ticket: 0 } + const baseTaskSet = new Set(activity.baseTasks) + let count = 0 + for (let task of user.taskProgress) { + if (baseTaskSet.has(task.id) && task.status === TaskStatusEnum.CLAIMED) { + count++ + } + } + let ticket = 0 + if (count === baseTaskSet.size) { + // all base task finished, give ticket + ticket = BASE_TASK_TICKET + } + return { status: currentTask.status, score, ticket } } }