feat(副将): 设置副将

This commit is contained in:
luying
2022-12-08 15:35:34 +08:00
parent bdbac4b085
commit b684307818
12 changed files with 92 additions and 8 deletions

View File

@@ -26,6 +26,8 @@ import { SkinModel } from '../../../db/Skin';
import { RoleCeModel } from '../../../db/RoleCe';
import { saveRebirthLog } from '../../../pubUtils/logUtil';
import { isGoodsHidden, isHeroHidden } from '../../../services/dataService';
import { LadderMatchModel } from '../../../db/LadderMatch';
import { PvpSaveDataModel } from '../../../db/PvpSaveData';
export default function (app: Application) {
new HandlerService(app, {});
@@ -749,6 +751,42 @@ export class HeroHandler {
return resResult(STATUS.SUCCESS, { curHero: {...pick(heroResult, ['hid', 'talent', 'usedTalentPoint', 'totalTalentPoint']) }});
}
// 设置副将
async setSubHero(msg: { hid: number, subHid: number }, session: BackendSession) {
let roleId = session.get('roleId');
let { hid, subHid: subSkinId } = msg;
let dicHero = gameData.hero.get(hid);
if(!dicHero || dicHero.urType != 1) return resResult(STATUS.HERO_CAN_NOT_SET_SUB);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_FIND);
let subHid = 0;
if(subSkinId > 0) { // 设置上
if(hero.subHid == subSkinId) return resResult(STATUS.HERO_SUB_DUPLICATE);
let dicHero = gameData.hero.get(subSkinId);
if(!dicHero || dicHero.urType == 1) return resResult(STATUS.HERO_CAN_NOT_BE_SET_SUB);
subHid = dicHero.actorId;
let subHero = await HeroModel.findByHidAndRole(subHid, roleId);
if(!subHero) return resResult(STATUS.HERO_NOT_FIND);
await LadderMatchModel.removeBySub(roleId, subHid);
await PvpSaveDataModel.removeBySub(roleId, subHid);
await PvpDefenseModel.removeBySub(roleId, subHid);
} else { // 卸下
if(!hero.subHid) return resResult(STATUS.HERO_CAN_NOT_REMOVE_SUB);
}
// 设置副将
const { preHid, curHero } = await HeroModel.setSubHero(roleId, hid, subSkinId, subHid);
return resResult(STATUS.SUCCESS, { preHid, curHero: pick(curHero, ['hid', 'subHid']) });
}
// ! debug接口 一键全武将
public async debugGetAllHeroes(msg: { magicWord: string }, session: BackendSession) {
let roleId: string = session.get('roleId');