✨ feat(gvg): 任务
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Application, BackendSession, ChannelService, HandlerService, pinus } from "pinus";
|
||||
import { GVG_ITEM, DATA_NAME, GVG_ACTIVE_TYPE, GVG_PERIOD, GVG_SERVER_TYPE, ITEM_CHANGE_REASON, LEAGUE_JOB, LEAGUE_MANAGE_TYPE, STATUS, GVG_REC_TYPE } from "../../../consts";
|
||||
import { GVG_ITEM, DATA_NAME, GVG_ACTIVE_TYPE, GVG_PERIOD, GVG_SERVER_TYPE, ITEM_CHANGE_REASON, LEAGUE_JOB, LEAGUE_MANAGE_TYPE, STATUS, GVG_REC_TYPE, TASK_TYPE } from "../../../consts";
|
||||
import { GVGLeagueModel } from "../../../db/GVGLeague";
|
||||
import { GVGLeaguePrepareModel } from "../../../db/GVGLeaguePrepare";
|
||||
import { GVGMainData, LeagueDistributeInfo, LeagueMemberDistributeInfo, LeagueMemberListInfo } from "../../../domain/gvgField/returnData";
|
||||
@@ -20,6 +20,7 @@ import { addGVGReward, handleGVGCost } from "../../../services/gvg/gvgItemServic
|
||||
import { RewardInter } from "../../../pubUtils/interface";
|
||||
import { getGVGCities } from "../../../services/gvg/gvgBattleService";
|
||||
import { GVGRecModel } from "../../../db/GVGRec";
|
||||
import { checkGVGTask } from "../../../services/task/taskService";
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -250,6 +251,38 @@ export class GVGHandler {
|
||||
});
|
||||
}
|
||||
|
||||
// 领取任务奖励
|
||||
async receiveTask(msg: { taskId: number }, session: BackendSession) {
|
||||
const roleId: string = session.get('roleId');
|
||||
const guildCode: string = session.get('guildCode');
|
||||
const roleName: string = session.get('roleName');
|
||||
const sid: string = session.get('sid');
|
||||
const { taskId } = msg;
|
||||
|
||||
let dicGVGTask = gameData.gvgTask.get(taskId);
|
||||
if(!dicGVGTask) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
let { configId } = getGVGConfig();
|
||||
|
||||
const myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||
|
||||
// 检查
|
||||
let rec = await GVGUserTaskModel.findByTaskId(configId, myLeague.leagueCode, roleId, taskId);
|
||||
if(!rec || rec.count < dicGVGTask.condition) return resResult(STATUS.GVG_TASK_NOT_ENOUGH);
|
||||
if(rec.status == 2) return resResult(STATUS.GVG_TASK_HAS_RECEIVED);
|
||||
|
||||
rec = await GVGUserTaskModel.receiveTask(configId, myLeague.leagueCode, roleId, taskId);
|
||||
let leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, dicGVGTask.leagueReward, dicGVGTask.reward, ITEM_CHANGE_REASON.GVG_RECEIVE_TASK);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
curTask: {
|
||||
id: rec.id,
|
||||
status: rec.status
|
||||
},
|
||||
leagueGoods
|
||||
});
|
||||
}
|
||||
|
||||
// 千机阁数据
|
||||
async getTech(msg: {}, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
@@ -321,6 +354,7 @@ export class GVGHandler {
|
||||
|
||||
// 千机阁解锁
|
||||
async activate(msg: { techId: number, battleFeats: number }, session: BackendSession) {
|
||||
const serverId = session.get('serverId');
|
||||
const roleId = session.get('roleId');
|
||||
const guildCode = session.get('guildCode');
|
||||
const sid = session.get('sid');
|
||||
@@ -359,6 +393,7 @@ export class GVGHandler {
|
||||
|
||||
// 添加 活跃
|
||||
let active = await addGVGTechActive(myLeague.leagueCode, roleId);
|
||||
checkGVGTask(serverId, roleId, sid, configId, myLeague.leagueCode, TASK_TYPE.GVG_TECH, { count: 1 });
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
active,
|
||||
|
||||
Reference in New Issue
Block a user