名将擂台:跑马灯&任务
This commit is contained in:
@@ -531,8 +531,10 @@ export class CheckSingleTask {
|
||||
// }
|
||||
case TASK_TYPE.HERO_CONNECT: // 16. 激活x次 x星 武将羁绊
|
||||
{
|
||||
let { connectLv } = param;
|
||||
if(dicTaskParam[1] == connectLv) {
|
||||
let { shipId, connections, oldConnections } = param;
|
||||
let oldConnectLv = oldConnections.find(cur => cur.shipId == shipId)?.level||0;
|
||||
let connectLv = connections.find(cur => cur.shipId == shipId)?.level||0;
|
||||
if(dicTaskParam[1] <= connectLv && dicTaskParam[1] > oldConnectLv) {
|
||||
result = { inc: 1 };
|
||||
}
|
||||
break;
|
||||
@@ -1268,6 +1270,48 @@ export class CheckSingleTask {
|
||||
result = { inc: 1 };
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.LADDER_CNT: // 121. 名将擂台挑战x次
|
||||
{
|
||||
let { count } = param;
|
||||
result = { inc: count };
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.LADDER_SUCCESS_CNT: // 122. 名将擂台挑战胜利x次
|
||||
{
|
||||
let { isSuccess, count } = param;
|
||||
if(isSuccess) {
|
||||
result = { inc: count };
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.LADDER_RANK: // 123. 名将擂台排名
|
||||
{
|
||||
let { oldLadderRank, ladderRank } = param;
|
||||
if(ladderRank < oldLadderRank && dicTaskParam[0] >= ladderRank) {
|
||||
result = { inc: 1 };
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.CONNECT_ONE_HERO_MAX_LV: // 124. 单个武将其中最高等级的羁绊达X级
|
||||
{
|
||||
let { connections, oldConnections } = param;
|
||||
let oldMaxLv = Math.max(...connections.map(cur => cur.level))||0;
|
||||
let maxLv = Math.max(...oldConnections.map(cur => cur.level))||0;
|
||||
if(dicTaskParam[0] <= oldMaxLv && dicTaskParam[0] > maxLv) {
|
||||
result = { inc: 1 };
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.CONNECT_ONE_HERO_SUM_LV: // 125. 单个武将3条羁绊总共提升X级
|
||||
{
|
||||
let { connections, oldConnections } = param;
|
||||
let oldSumLv = connections.reduce((pre, cur) => pre + cur.level, 0);
|
||||
let sumLv = oldConnections.reduce((pre, cur) => pre + cur.level, 0);
|
||||
if(dicTaskParam[0] <= oldSumLv && dicTaskParam[0] > sumLv) {
|
||||
result = { inc: 1 };
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { pinus, FrontendOrBackendSession } from 'pinus';
|
||||
import { resResult, shouldRefresh } from '../../pubUtils/util';
|
||||
import { STATUS, TASK_TYPE, TASK_FUN_TYPE, SHOP_REFRESH_TYPE, WAR_TYPE, PUSH_ROUTE, POP_UP_SHOP_CONDITION_TYPE } from '../../consts';
|
||||
import { TaskParamInter, TaskListReturn } from '../../domain/roleField/task';
|
||||
import { EPlace, HeroType } from '../../db/Hero';
|
||||
import { Connect, EPlace, HeroType } from '../../db/Hero';
|
||||
import { HeroScores } from '../../db/PvpHistoryOpp';
|
||||
import { ItemInter, RewardInter } from '../../pubUtils/interface';
|
||||
import { UserTaskModel, UserTaskType } from '../../db/UserTask';
|
||||
@@ -314,6 +314,35 @@ export async function checkTaskInDonate(serverId: number, roleId: string, sid: s
|
||||
await task.saveAndPush(sid);
|
||||
}
|
||||
|
||||
// 名将擂台
|
||||
export async function checkTaskInLadderStart(serverId: number, roleId: string, sid: string) {
|
||||
let task = new CheckTask(serverId, roleId);
|
||||
task.setParam(TASK_TYPE.LADDER_CNT, { count: 1 });
|
||||
await task.saveAndPush(sid);
|
||||
}
|
||||
|
||||
export async function checkTaskInLadderEnd(serverId: number, roleId: string, sid: string, isSuccess: boolean, oldHistoryRank: number, newHistoryRank: number) {
|
||||
let task = new CheckTask(serverId, roleId);
|
||||
task.setParam(TASK_TYPE.LADDER_SUCCESS_CNT, { isSuccess, count: 1 });
|
||||
task.setParam(TASK_TYPE.LADDER_RANK, { oldLadderRank: oldHistoryRank, ladderRank: newHistoryRank })
|
||||
await task.saveAndPush(sid);
|
||||
}
|
||||
|
||||
export async function checkTaskInLadderSweep(serverId: number, roleId: string, sid: string, count: number) {
|
||||
let task = new CheckTask(serverId, roleId);
|
||||
task.setParam(TASK_TYPE.LADDER_CNT, { count });
|
||||
task.setParam(TASK_TYPE.LADDER_SUCCESS_CNT, { isSuccess: true, count });
|
||||
await task.saveAndPush(sid);
|
||||
}
|
||||
|
||||
export async function checkTaskInHeroGiveFavor(serverId: number, roleId: string, sid: string, shipId: number, connections: Connect[], oldConnections: Connect[]) {
|
||||
let task = new CheckTask(serverId, roleId);
|
||||
task.setParam(TASK_TYPE.HERO_CONNECT, { shipId, connections, oldConnections });
|
||||
task.setParam(TASK_TYPE.CONNECT_ONE_HERO_MAX_LV, { connections, oldConnections });
|
||||
task.setParam(TASK_TYPE.CONNECT_ONE_HERO_SUM_LV, { connections, oldConnections });
|
||||
await task.saveAndPush(sid);
|
||||
}
|
||||
|
||||
// 获取task状态
|
||||
export async function getCurTask(roleId: string, session: FrontendOrBackendSession) {
|
||||
let userTask = await UserTaskModel.findByRole(roleId);
|
||||
|
||||
Reference in New Issue
Block a user