✨ 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,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Application, BackendSession, ChannelService, HandlerService } from "pinus";
|
||||
import { GVG_ACTIVE_TYPE, GVG_ITEM, GVG_ITEM_TYPE, GVG_PERIOD, GVG_RESOURCE_TYPE, ITEM_CHANGE_REASON, MAIL_TYPE, STATUS } from "../../../consts";
|
||||
import { GVG_ACTIVE_TYPE, GVG_ITEM, GVG_ITEM_TYPE, GVG_PERIOD, GVG_RESOURCE_TYPE, ITEM_CHANGE_REASON, MAIL_TYPE, STATUS, TASK_TYPE } from "../../../consts";
|
||||
import { GVGLeagueModel } from "../../../db/GVGLeague";
|
||||
import { GVGLeagueFarmModel, GVGLeagueFarmType } from "../../../db/GVGLeagueFarm";
|
||||
import { GVGLeagueFarmRecModel } from "../../../db/GVGLeagueFarmRec";
|
||||
@@ -17,6 +17,7 @@ import { addGVGActive, addResource, getCostSeedReward, getItemIdOfSeedType, getL
|
||||
import { getGVGConfig, getGVGPeriodData } from "../../../services/gvg/gvgService";
|
||||
import { sendMailByContent } from "../../../services/mailService";
|
||||
import { getAllServerName, getRoleOnlineInfo } from "../../../services/redisService";
|
||||
import { checkGVGTask } from "../../../services/task/taskService";
|
||||
|
||||
|
||||
export default function (app: Application) {
|
||||
@@ -158,7 +159,7 @@ export class GVGProduceHandler {
|
||||
// 种田
|
||||
async plant(msg: { farmId: number, seeds: { fieldId: number, seedType: number }[] }, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
const roleName = session.get('roleName');
|
||||
const serverId = session.get('serverId');
|
||||
const guildCode = session.get('guildCode');
|
||||
const sid = session.get('sid');
|
||||
|
||||
@@ -196,6 +197,7 @@ export class GVGProduceHandler {
|
||||
const plantResult = await GVGLeagueFarmModel.plant(configId, myLeague.leagueCode, farmId, updateFields, roleId);
|
||||
await rollbackUnPlantFields(cost, plantResult, session, myLeague.leagueCode); // 可能会有田已经被其他人占领的情况,将种子还回去
|
||||
await GVGLeagueFarmRecModel.insertRecs(plantResult);
|
||||
checkGVGTask(serverId, roleId, sid, configId, myLeague.leagueCode, TASK_TYPE.GVG_FARM, { count: 1 });
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId)
|
||||
@@ -324,6 +326,7 @@ export class GVGProduceHandler {
|
||||
const roleName = session.get('roleName');
|
||||
const guildCode = session.get('guildCode');
|
||||
const sid = session.get('sid');
|
||||
const serverId = session.get('serverId');
|
||||
|
||||
const { farmId, fieldId, result } = msg;
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
@@ -367,6 +370,7 @@ export class GVGProduceHandler {
|
||||
let leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, leagueReward, reward, ITEM_CHANGE_REASON.HARVEST)
|
||||
// 活跃
|
||||
const active = await addGVGActive(myLeague.leagueCode, roleId, GVG_ACTIVE_TYPE.COST_PRODUCE_COIN, produceCoin);
|
||||
checkGVGTask(serverId, roleId, sid, configId, myLeague.leagueCode, TASK_TYPE.GVG_FARM, { count: 1 });
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId, false),
|
||||
@@ -449,6 +453,7 @@ export class GVGProduceHandler {
|
||||
const roleName = session.get('roleName');
|
||||
const guildCode = session.get('guildCode');
|
||||
const sid = session.get('sid');
|
||||
const serverId = session.get('serverId');
|
||||
|
||||
const { farmId, fieldId, result } = msg;
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
@@ -486,6 +491,7 @@ export class GVGProduceHandler {
|
||||
let leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, leagueReward, reward, ITEM_CHANGE_REASON.HARVEST)
|
||||
// 活跃
|
||||
const active = await addGVGActive(myLeague.leagueCode, roleId, GVG_ACTIVE_TYPE.COST_PRODUCE_COIN, produceCoin);
|
||||
checkGVGTask(serverId, roleId, sid, configId, myLeague.leagueCode, TASK_TYPE.GVG_FARM, { count: 1 });
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
...await getLeagueFarmShowResult(myLeague.leagueCode, roleId, farmId, false),
|
||||
|
||||
Reference in New Issue
Block a user