名将擂台:修复任务相关
This commit is contained in:
@@ -18,6 +18,7 @@ import { ServerlistModel } from '../../../db/Serverlist';
|
||||
import { saveLadderDefCeByData } from '../../../services/redisService';
|
||||
import { pushLadderTopChangeMsg } from '../../../services/sysChatService';
|
||||
import { checkTaskInLadderEnd, checkTaskInLadderStart, checkTaskInLadderSweep } from '../../../services/task/taskService';
|
||||
import { BattleRecordModel } from '../../../db/BattleRecord';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -136,9 +137,10 @@ export class LadderHandler {
|
||||
}
|
||||
|
||||
// 6. 布完阵开始挑战
|
||||
async checkBattle(msg: { battleCode: string, heroes: { actorId: number, order: number }[] }, session: BackendSession) {
|
||||
async checkBattle(msg: { battleCode: string, battleId: number, heroes: { actorId: number, order: number }[] }, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let { battleCode, heroes } = msg;
|
||||
let roleName = session.get('roleId');
|
||||
let { battleId, battleCode, heroes } = msg;
|
||||
|
||||
let rec = await LadderMatchRecModel.findByBattleCode(battleCode);
|
||||
if(!rec || rec.roleId1 != roleId) return resResult(STATUS.LADDER_REC_NOT_FOUND);
|
||||
@@ -152,7 +154,15 @@ export class LadderHandler {
|
||||
heroInfo.setByDefenseHero(hero);
|
||||
return heroInfo;
|
||||
});
|
||||
|
||||
let warInfo = gameData.war.get(battleId);
|
||||
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
|
||||
$set: {
|
||||
roleId, roleName, battleId,
|
||||
status: 0,
|
||||
warName: warInfo?.gk_name,
|
||||
warType: warInfo?.warType,
|
||||
}
|
||||
});
|
||||
rec = await LadderMatchRecModel.startBattle(battleCode, attackHeroes);
|
||||
pinus.app.rpc.systimer.systimerRemote.setLadderCountDown.broadcast(rec.battleCode, rec.battleTime, LADDER_STATUS.BATTLE);
|
||||
|
||||
@@ -196,6 +206,7 @@ export class LadderHandler {
|
||||
} else {
|
||||
rec = await LadderMatchRecModel.battleEnd(battleCode, isSuccess);
|
||||
}
|
||||
await BattleRecordModel.updateBattleRecordByCode(battleCode, { $set: { status: isSuccess? 1: 2 } });
|
||||
|
||||
let historyRank = ladderData.historyRank;
|
||||
ladderData = await LadderMatchModel.updateByRoleId(roleId, { historyRank: historyRank > atkLadderMatch.rank? atkLadderMatch.rank: historyRank, locked: 0 });
|
||||
|
||||
@@ -423,7 +423,7 @@ export class HeroHandler {
|
||||
if (heroes.length < dicFriendShip.hids.length) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
|
||||
let hero = heroes.find(cur => cur.hid == hid);
|
||||
if(!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
|
||||
let { connections } = hero;
|
||||
let { connections = []} = hero;
|
||||
let curConnect = connections.find(cur => cur.shipId == shipId);
|
||||
let { level: oldLv = 0, exp: oldExp = 0 } = curConnect||{};
|
||||
|
||||
|
||||
@@ -1294,21 +1294,25 @@ export class CheckSingleTask {
|
||||
}
|
||||
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 };
|
||||
let { connections } = param;
|
||||
let records = await getRecord();
|
||||
let oldLv = records.length > 0? parseInt(records[0]): 0;
|
||||
|
||||
let maxLv = Math.max(...connections.map(cur => cur.level))||0;
|
||||
console.log('##### TASK_TYPE.CONNECT_ONE_HERO_MAX_LV', oldLv, maxLv )
|
||||
if(oldLv < maxLv) {
|
||||
result = { set: maxLv, records: [`${maxLv}`] };
|
||||
}
|
||||
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 };
|
||||
let { connections } = param;
|
||||
let records = await getRecord();
|
||||
let oldLv = records.length > 0? parseInt(records[0]): 0;
|
||||
let sumLv = connections.reduce((pre, cur) => pre + cur.level, 0);
|
||||
if(oldLv < sumLv) {
|
||||
result = { set: sumLv, records: [`${sumLv}`] };
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -567,7 +567,7 @@ export const WAR_RELATE_TABLES = [
|
||||
FILENAME.DIC_GK_PROBATION,
|
||||
FILENAME.DIC_GK_ARMY_TRAIN,
|
||||
FILENAME.DIC_GK_ARMY_BOSS,
|
||||
// FILENAME.DIC_GK_LADDER,
|
||||
FILENAME.DIC_GK_LADDER,
|
||||
]
|
||||
|
||||
// 装备栏强化类型
|
||||
|
||||
@@ -103,14 +103,14 @@ export default class LadderMatch extends BaseModel {
|
||||
let atkLadderMatch: LadderMatchType, defLadderMatch: LadderMatchType, isChange = false;
|
||||
if(defenseInfo.isRobot) {
|
||||
atkLadderMatch = await LadderMatchModel.findOne({ roleId: attackInfo.roleId }).lean();
|
||||
if(isSuccess && atkLadderMatch && atkLadderMatch.rank > defenseInfo.oldRank) {
|
||||
if(isSuccess && atkLadderMatch && (atkLadderMatch.rank == 0 || atkLadderMatch.rank > defenseInfo.oldRank)) {
|
||||
atkLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId: attackInfo.roleId }, { $set: { rank: defenseInfo.oldRank, oldRank: atkLadderMatch.rank } }, { new: true }).lean();
|
||||
isChange = true;
|
||||
}
|
||||
} else {
|
||||
atkLadderMatch = await LadderMatchModel.findOne({ roleId: attackInfo.roleId }).lean();
|
||||
defLadderMatch = await LadderMatchModel.findOne({ roleId: defenseInfo.roleId }).lean();
|
||||
if(isSuccess && atkLadderMatch && defLadderMatch && atkLadderMatch.rank > defLadderMatch.rank) {
|
||||
if(isSuccess && atkLadderMatch && defLadderMatch && (atkLadderMatch.rank == 0 || atkLadderMatch.rank > defLadderMatch.rank)) {
|
||||
atkLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId: attackInfo.roleId }, { $set: { rank: defLadderMatch.rank, oldRank: atkLadderMatch.rank } }, { new: true }).lean();
|
||||
defLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId: defenseInfo.roleId }, { $set: { rank: atkLadderMatch.rank, oldRank: defLadderMatch.rank } }, { new: true }).lean();
|
||||
isChange = true;
|
||||
|
||||
@@ -2247,11 +2247,11 @@
|
||||
"subTab": 17,
|
||||
"subTabName": "攻擂",
|
||||
"taskType": 123,
|
||||
"taskParam": "100&",
|
||||
"taskParam": "100&1",
|
||||
"achieveType": 61,
|
||||
"achieveTaskName": "不屈不挠·壹",
|
||||
"taskInfo": "名将擂台排名进入前100名",
|
||||
"condition": 100,
|
||||
"condition": 1,
|
||||
"taskReward": "17054&100",
|
||||
"point": 10
|
||||
},
|
||||
@@ -2263,11 +2263,11 @@
|
||||
"subTab": 17,
|
||||
"subTabName": "攻擂",
|
||||
"taskType": 123,
|
||||
"taskParam": "50&",
|
||||
"taskParam": "50&1",
|
||||
"achieveType": 61,
|
||||
"achieveTaskName": "不屈不挠·贰",
|
||||
"taskInfo": "名将擂台排名进入前50名",
|
||||
"condition": 50,
|
||||
"condition": 1,
|
||||
"taskReward": "17054&100",
|
||||
"point": 10
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user