任务:添加任务类型
This commit is contained in:
@@ -697,9 +697,9 @@ export class CheckSingleTask {
|
||||
}
|
||||
case TASK_TYPE.BATTLE_TOWER: // 47. 通关镇念塔x次
|
||||
{
|
||||
let { warId, count } = param;
|
||||
let { warId, count = 1, skipTower } = param;
|
||||
let dicWar = gameData.war.get(warId);
|
||||
if (dicWar.warType == WAR_TYPE.TOWER) {
|
||||
if (dicWar.warType == WAR_TYPE.TOWER || skipTower) {
|
||||
result = { inc: count };
|
||||
}
|
||||
break;
|
||||
@@ -708,7 +708,7 @@ export class CheckSingleTask {
|
||||
{
|
||||
let { warId, count } = param;
|
||||
let dicWar = gameData.war.get(warId);
|
||||
if (dicWar.warType == WAR_TYPE.VESTIGE) {
|
||||
if (dicWar.warType == WAR_TYPE.VESTIGE && this.checkIdList(dicTaskParam, 0, warId)) {
|
||||
result = { inc: count };
|
||||
}
|
||||
break;
|
||||
@@ -1209,6 +1209,76 @@ export class CheckSingleTask {
|
||||
result = { inc: count };
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.BATTLE_MAIN_START: // 111. 挑战主线X次
|
||||
{
|
||||
let { warId, count } = param;
|
||||
let dicWar = gameData.war.get(warId);
|
||||
if (dicWar.warType == WAR_TYPE.NORMAL) {
|
||||
result = { inc: count };
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.BATTLE_TOWER_START: // 112. 挑战镇念塔X次
|
||||
{
|
||||
let { warId, count = 1, skipTower } = param;
|
||||
let dicWar = gameData.war.get(warId);
|
||||
if (dicWar.warType == WAR_TYPE.TOWER || skipTower) {
|
||||
result = { inc: count };
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.BATTLE_VESTIGE_START: // 113. 挑战遗迹X次
|
||||
{
|
||||
let { warId, count } = param;
|
||||
let dicWar = gameData.war.get(warId);
|
||||
if (dicWar.warType == WAR_TYPE.VESTIGE) {
|
||||
result = { inc: count };
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.BATTLE_DAILY_START: // 114. 挑战每日关卡X次
|
||||
{
|
||||
let { warId, count } = param;
|
||||
let dicWar = gameData.war.get(warId);
|
||||
if(dicWar.warType == WAR_TYPE.DAILY && (dicTaskParam[0] == 0 || dicTaskParam[0] == dicWar.dailyType)) {
|
||||
result = { inc: count };
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.COM_BATTLE_CREATE_TEAM_WIN: // 115. 寻宝招募队友x次
|
||||
{
|
||||
result = { inc: 1 };
|
||||
break;
|
||||
}
|
||||
|
||||
case TASK_TYPE.COM_BATTLE_ASSIST_TEAM_WIN: // 116. 协助寻宝x次
|
||||
{
|
||||
result = { inc: 1 };
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.COM_BATTLE_WIN: // 117. 组队寻宝
|
||||
{
|
||||
result = { inc: 1 };
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.BATTLE_EXPEDITION_START: // 118. 远征挑战X次
|
||||
{
|
||||
let { warId, count } = param;
|
||||
let dicWar = gameData.war.get(warId);
|
||||
if (dicWar.warType == WAR_TYPE.EXPEDITION) {
|
||||
result = { inc: count };
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TASK_TYPE.BATTLE_DUNGEON_START: // 119. 秘境挑战X次
|
||||
{
|
||||
let { warId, count } = param;
|
||||
let dicWar = gameData.war.get(warId);
|
||||
if(dicWar.warType == WAR_TYPE.MYSTERY || dicWar.warType == WAR_TYPE.MYSTERY_ELITE) {
|
||||
result = { inc: count };
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -107,6 +107,17 @@ export async function checkTaskInGuildTrain(serverId: number, roleId: string, si
|
||||
await task.saveAndPush(sid);
|
||||
}
|
||||
|
||||
export async function checkTaskInBattleStart(serverId: number, roleId: string, sid: string, warId: number) {
|
||||
let task = new CheckTask(serverId, roleId);
|
||||
task.setParam(TASK_TYPE.BATTLE_MAIN_START, { warId, count: 1 });
|
||||
task.setParam(TASK_TYPE.BATTLE_TOWER_START, { warId, count: 1 });
|
||||
task.setParam(TASK_TYPE.BATTLE_VESTIGE_START, { warId, count: 1 });
|
||||
task.setParam(TASK_TYPE.BATTLE_DAILY_START, { warId, count: 1 });
|
||||
task.setParam(TASK_TYPE.BATTLE_EXPEDITION_START, { warId, count: 1 });
|
||||
task.setParam(TASK_TYPE.BATTLE_DUNGEON_START, { warId, count: 1 });
|
||||
await task.saveAndPush(sid);
|
||||
}
|
||||
|
||||
/**
|
||||
* battle.normalBattleHandler.battleEnd 中会触发的任务,因为有点多提出来了
|
||||
*/
|
||||
@@ -131,6 +142,14 @@ export async function checkTaskInGuildTrain(serverId: number, roleId: string, si
|
||||
}
|
||||
}
|
||||
|
||||
export async function checkTaskInSkipTower(serverId: number, roleId: string, sid: string, towerLv: number) {
|
||||
let task = new CheckTask(serverId, roleId);
|
||||
task.setParam(TASK_TYPE.BATTLE_TOWER_LV, { towerLv: towerLv - 1 });
|
||||
task.setParam(TASK_TYPE.BATTLE_TOWER_START, { skipTower: true });
|
||||
task.setParam(TASK_TYPE.BATTLE_TOWER, { skipTower: true });
|
||||
await task.saveAndPush(sid);
|
||||
}
|
||||
|
||||
|
||||
export async function checkTaskInBattleSweep(serverId: number, roleId: string, sid: string, warId: number, count: number) {
|
||||
let task = new CheckTask(serverId, roleId);
|
||||
@@ -165,6 +184,23 @@ export async function checkTaskInComBattleStart(roleStatus: RoleStatus[], capId:
|
||||
}
|
||||
}
|
||||
|
||||
export async function checkTaskInComBattleEnd(roleStatus: RoleStatus[], capId: string) {
|
||||
for (let { roleId, isRobot } of roleStatus) {
|
||||
if (!isRobot) {
|
||||
let role = await RoleModel.findByRoleId(roleId);
|
||||
let task = new CheckTask(role.serverId, roleId);
|
||||
task.setRole(role);
|
||||
if (roleId == capId && roleStatus.length > 1) { // 招募队友
|
||||
task.setParam(TASK_TYPE.COM_BATTLE_CREATE_TEAM_WIN, {});
|
||||
} else if (roleId !== capId) { // 协助寻宝
|
||||
task.setParam(TASK_TYPE.COM_BATTLE_ASSIST_TEAM_WIN, {});
|
||||
}
|
||||
task.setParam(TASK_TYPE.COM_BATTLE_WIN, {});
|
||||
await task.saveAndPush();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export async function checkTaskInPvpEnd(serverId: number, roleId: string, sid: string, isSuccess: boolean, heroScores: HeroScores[], myRank: number) {
|
||||
let task = new CheckTask(serverId, roleId);
|
||||
task.setParam(TASK_TYPE.PVP_WIN, { isSuccess });
|
||||
|
||||
Reference in New Issue
Block a user