✨ feat(任务): 添加稷下学宫任务
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { RougelikeRecordDetailType } from '../../db/RougelikeRecordDetail';
|
||||
import { COLLECTION_TYPE, PUSH_ROUTE, ROUGE_LIKE_CARD_TYPE } from '../../consts';
|
||||
import { COLLECTION_TYPE, PUSH_ROUTE, ROUGE_LIKE_CARD_TYPE, TASK_ROUGE_CARD_TYPE, TASK_TYPE } from '../../consts';
|
||||
import { genCode } from '../../pubUtils/util';
|
||||
import { Card, RougelikeCharaModel, RougelikeCharaPara, RougelikeCharaType } from '../../db/RougelikeChara';
|
||||
import { RougelikeCardPara, RougelikeCardModel } from '../../db/RougelikeCard';
|
||||
@@ -9,10 +9,13 @@ import { sendMessageToUserWithSuc } from '../pushService';
|
||||
import { gameData } from '../../pubUtils/data';
|
||||
import { clone } from 'underscore';
|
||||
import { RougeEffect, getSlotUnlockPoint } from './rougeEffectService';
|
||||
import { BackendSession } from 'pinus';
|
||||
import { checkTask } from '../task/taskService';
|
||||
|
||||
export class HandleAddCard {
|
||||
roleId: string;
|
||||
sid: string;
|
||||
serverId: number;
|
||||
gameCode: string;
|
||||
getLayer: number = 0;
|
||||
getWay: number = 0;
|
||||
@@ -21,9 +24,10 @@ export class HandleAddCard {
|
||||
addHolyCards: RougelikeCardPara[] = []; // 需要更新的圣物
|
||||
addCoin: number = 0; // 需要增加的试炼币
|
||||
|
||||
constructor(roleId: string, sid: string, gameCode: string, recordDetail?: RougelikeRecordDetailType) {
|
||||
this.roleId = roleId;
|
||||
this.sid = sid;
|
||||
constructor(session: BackendSession, gameCode: string, recordDetail?: RougelikeRecordDetailType) {
|
||||
this.roleId = session.get('roleId');
|
||||
this.sid = session.get('sid');
|
||||
this.serverId = session.get('serverId');
|
||||
this.gameCode = gameCode;
|
||||
if (recordDetail) {
|
||||
this.getLayer = recordDetail.layer;
|
||||
@@ -107,6 +111,22 @@ export class HandleAddCard {
|
||||
}
|
||||
if (collections.length > 0) await addCollection(this.roleId, this.sid, this.gameCode, collections);
|
||||
|
||||
//任务
|
||||
if (this.addPassiveCards.length > 0) {
|
||||
let passiveCardMap = new Map<number, number>();
|
||||
for (const { cardId } of this.addPassiveCards) {
|
||||
const passiveCardData = gameData.rougePassiveCard.get(cardId);
|
||||
let count = passiveCardMap.get(passiveCardData.authorType) || 0;
|
||||
passiveCardMap.set(passiveCardData.authorType, count + 1);
|
||||
}
|
||||
for (const [authorType, count] of passiveCardMap) {
|
||||
await checkTask(this.serverId, this.roleId, this.sid, TASK_TYPE.ROUGE_AUTHOR_CARD_COLLECT, { authorType, cardType: TASK_ROUGE_CARD_TYPE.PASSIVE, cardIds:this.addPassiveCards.map(cur => cur.cardId) });
|
||||
}
|
||||
}
|
||||
if (this.addHolyCards.length > 0) {
|
||||
await checkTask(this.serverId, this.roleId, this.sid, TASK_TYPE.ROUGE_HOLY_COLLECT, {cardIds:this.addHolyCards.map(cur => cur.cardId)});
|
||||
}
|
||||
|
||||
if (this.addCharas.length > 0) {
|
||||
result.addCharas = await this.getCharasByHolyEffect();
|
||||
}
|
||||
|
||||
@@ -1503,6 +1503,83 @@ export class CheckSingleTask {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.FUND_ROUGE: //143 通关XX试炼几
|
||||
{
|
||||
let { rougeId, count } = param;
|
||||
if (rougeId == dicTaskParam[0]) {
|
||||
result = { inc: count };
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.FUND_AUTHOR: //144 列传收集进度
|
||||
{
|
||||
let { authorProgress } = param;
|
||||
result = { set: authorProgress };
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.ROUGE_GET_COIN: // 145. 学宫积累x个试炼币
|
||||
{
|
||||
let { addCoin } = param;
|
||||
result = { inc: addCoin }
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.ROUGE_AUTHOR_CARD_COLLECT: // 146.流派卡收集
|
||||
{
|
||||
let records = await getRecord();
|
||||
let { authorType, cardType, cardIds } = param;
|
||||
if (authorType == dicTaskParam[0] && cardType == dicTaskParam[1]) {
|
||||
for (let cardId of cardIds) {
|
||||
if (records.indexOf(`${cardId}`) == -1) {
|
||||
records.push(`${cardId}`);
|
||||
}
|
||||
}
|
||||
result = { records, set: records.length };
|
||||
}
|
||||
break;;
|
||||
}
|
||||
case TASK_TYPE.ROUGE_HOLY_COLLECT: // 147.圣物卡收集
|
||||
{
|
||||
let records = await getRecord();
|
||||
let { cardIds } = param;
|
||||
for (let cardId of cardIds) {
|
||||
if (records.indexOf(`${cardId}`) == -1) {
|
||||
records.push(`${cardId}`);
|
||||
}
|
||||
}
|
||||
result = { records, set: records.length };
|
||||
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.ROUGE_EVENT_COLLECT: // 148.事件收集
|
||||
{
|
||||
let records = await getRecord();
|
||||
let { eventGroups } = param;
|
||||
for (let eventGroup of eventGroups){
|
||||
records.push(`${eventGroup}`);
|
||||
}
|
||||
result = { records, set: records.length };
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.ROUGE_TECH_OPEN: // 149.法阵开启数量
|
||||
{
|
||||
let { count } = param;
|
||||
result = { inc: count };
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.ROUGE_GAME_COUNT: // 150.肉鸽次数
|
||||
{
|
||||
let { count } = param;
|
||||
result = { inc: count };
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.ROUGE_BOSS_PASS: // 151.试炼通过boss关
|
||||
{
|
||||
let { authorType, count } = param;
|
||||
if (authorType == dicTaskParam[0]) {
|
||||
result = { inc: count };
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user