✨ feat(活动): 小游戏添加任务
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { Application, BackendSession, HandlerService, } from 'pinus';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { ITEM_CHANGE_REASON, REDIS_KEY, STATUS } from '../../../consts';
|
||||
import { ITEM_CHANGE_REASON, MINI_GAME_TYPE, REDIS_KEY, STATUS, TASK_TYPE } from '../../../consts';
|
||||
import { addReward, stringToConsumeParam, stringToRewardParam } from '../../../services/activity/giftPackageService';
|
||||
import { getPlayerMiniGameData, getPlayerMiniGameDataShow } from '../../../services/activity/miniGameService';
|
||||
import { ActivityMiniGameRecModel } from '../../../db/ActivityMiniGameRec';
|
||||
@@ -10,6 +10,7 @@ import { Rank } from '../../../services/rankService';
|
||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { RoleRankInfo } from '../../../domain/rank';
|
||||
import { getAllServerName } from '../../../services/redisService';
|
||||
import { checkTask } from '../../../services/task/taskService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -53,8 +54,7 @@ export class ForgeHandler {
|
||||
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||
|
||||
if(playerData.playCnt >= playerData.buyCnt + playerData.freeCnt) return resResult(STATUS.ACTIVITY_MINI_GAME_COUNT_LACK);
|
||||
let record = await ActivityMiniGameRecModel.gameStart(serverId, activityId, playerData.roundIndex, playerData.todayIndex, roleId);
|
||||
|
||||
let record = await ActivityMiniGameRecModel.gameStart(serverId, activityId, playerData.roundIndex, playerData.todayIndex, roleId, playerData.gameType);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
activityId,
|
||||
@@ -69,8 +69,8 @@ export class ForgeHandler {
|
||||
* @param {BackendSession} session
|
||||
* @memberof ForgeHandler
|
||||
*/
|
||||
async gameEnd(msg: { activityId: number, gameCode: string, score: number }, session: BackendSession) {
|
||||
const { activityId, gameCode, score } = msg;
|
||||
async gameEnd(msg: { activityId: number, gameCode: string, score: number, params: number[] }, session: BackendSession) {
|
||||
const { activityId, gameCode, score, params } = msg;
|
||||
const roleId = session.get('roleId');
|
||||
const roleName = session.get('roleName');
|
||||
const sid = session.get('sid');
|
||||
@@ -80,7 +80,7 @@ export class ForgeHandler {
|
||||
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||
|
||||
// 记录得分&次数
|
||||
let record = await ActivityMiniGameRecModel.gameEnd(activityId, roleId, gameCode, score);
|
||||
let record = await ActivityMiniGameRecModel.gameEnd(activityId, roleId, gameCode, score, params);
|
||||
if(!record) return resResult(STATUS.ACTIVITY_MINI_GAME_RECORD_NOT_FOUND);
|
||||
|
||||
let playerRecord = await ActivityMiniGameModel.incScore(serverId, activityId, playerData.roundIndex, roleId, score, playerData.nextRefreshTime);
|
||||
@@ -94,6 +94,9 @@ export class ForgeHandler {
|
||||
let r = new Rank(REDIS_KEY.ACTIVITY_MINI_GAME, { activityId, roundIndex: playerData.roundIndex });
|
||||
await r.setRankWithRoleInfo(roleId, score, nowSeconds(), null, true);
|
||||
|
||||
if(playerData.gameType == MINI_GAME_TYPE.SHOOT) await checkTask(serverId, roleId, sid, TASK_TYPE.MINI_GAME_SHOOT, { score });
|
||||
if(playerData.gameType == MINI_GAME_TYPE.ERASE) await checkTask(serverId, roleId, sid, TASK_TYPE.MINI_GAME_ERASE, { step: params[0] });
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
activityId,
|
||||
gameCode,
|
||||
|
||||
Reference in New Issue
Block a user