✨ feat(副将): 设置副将
This commit is contained in:
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user